Logical

__m256i __lasx_xvand_v (__m256i a, __m256i b)

Synopsis

__m256i __lasx_xvand_v (__m256i a, __m256i b)
#include <lasxintrin.h>
Instruction: xvand.v xr, xr, xr
CPU Flags: LASX

Description

Compute bitwise AND between elements in a and b.

Operation

for (int i = 0; i < 4; i++) {
  dst.dword[i] = a.dword[i] & b.dword[i];
}

Tested on real machine.

Latency and Throughput

CPU Latency Throughput (IPC)
3A6000 1 4
3C5000 1 2

__m256i __lasx_xvandi_b (__m256i a, imm0_255 imm)

Synopsis

__m256i __lasx_xvandi_b (__m256i a, imm0_255 imm)
#include <lasxintrin.h>
Instruction: xvandi.b xr, xr, imm
CPU Flags: LASX

Description

Compute bitwise AND between elements in a and imm.

Operation

for (int i = 0; i < 32; i++) {
  dst.byte[i] = a.byte[i] & imm;
}

Tested on real machine.

Latency and Throughput

CPU Latency Throughput (IPC)
3A6000 1 4
3C5000 1 2

__m256i __lasx_xvandn_v (__m256i a, __m256i b)

Synopsis

__m256i __lasx_xvandn_v (__m256i a, __m256i b)
#include <lasxintrin.h>
Instruction: xvandn.v xr, xr, xr
CPU Flags: LASX

Description

Compute bitwise ANDN between elements in a and b.

Operation

for (int i = 0; i < 4; i++) {
  dst.dword[i] = b.dword[i] & (~a.dword[i]);
}

Tested on real machine.

Latency and Throughput

CPU Latency Throughput (IPC)
3A6000 1 4
3C5000 1 2

__m256i __lasx_xvnor_v (__m256i a, __m256i b)

Synopsis

__m256i __lasx_xvnor_v (__m256i a, __m256i b)
#include <lasxintrin.h>
Instruction: xvnor.v xr, xr, xr
CPU Flags: LASX

Description

Compute bitwise NOR between elements in a and b.

Operation

for (int i = 0; i < 4; i++) {
  dst.dword[i] = ~(a.dword[i] | b.dword[i]);
}

Tested on real machine.

Latency and Throughput

CPU Latency Throughput (IPC)
3A6000 1 4
3C5000 1 2

__m256i __lasx_xvnori_b (__m256i a, imm0_255 imm)

Synopsis

__m256i __lasx_xvnori_b (__m256i a, imm0_255 imm)
#include <lasxintrin.h>
Instruction: xvnori.b xr, xr, imm
CPU Flags: LASX

Description

Compute bitwise NOR between elements in a and imm.

Operation

for (int i = 0; i < 32; i++) {
  dst.byte[i] = ~(a.byte[i] | imm);
}

Tested on real machine.

Latency and Throughput

CPU Latency Throughput (IPC)
3A6000 1 4
3C5000 1 2

__m256i __lasx_xvor_v (__m256i a, __m256i b)

Synopsis

__m256i __lasx_xvor_v (__m256i a, __m256i b)
#include <lasxintrin.h>
Instruction: xvor.v xr, xr, xr
CPU Flags: LASX

Description

Compute bitwise OR between elements in a and b.

Operation

for (int i = 0; i < 4; i++) {
  dst.dword[i] = a.dword[i] | b.dword[i];
}

Tested on real machine.

Latency and Throughput

CPU Latency Throughput (IPC)
3A6000 1 4
3C5000 1 2

__m256i __lasx_xvori_b (__m256i a, imm0_255 imm)

Synopsis

__m256i __lasx_xvori_b (__m256i a, imm0_255 imm)
#include <lasxintrin.h>
Instruction: xvori.b xr, xr, imm
CPU Flags: LASX

Description

Compute bitwise OR between elements in a and imm.

Operation

for (int i = 0; i < 32; i++) {
  dst.byte[i] = a.byte[i] | imm;
}

Tested on real machine.

Latency and Throughput

CPU Latency Throughput (IPC)
3A6000 1 4
3C5000 1 2

__m256i __lasx_xvorn_v (__m256i a, __m256i b)

Synopsis

__m256i __lasx_xvorn_v (__m256i a, __m256i b)
#include <lasxintrin.h>
Instruction: xvorn.v xr, xr, xr
CPU Flags: LASX

Description

Compute bitwise ORN between elements in a and b.

Operation

for (int i = 0; i < 4; i++) {
  dst.dword[i] = a.dword[i] | (~b.dword[i]);
}

Tested on real machine.

Latency and Throughput

CPU Latency Throughput (IPC)
3A6000 1 4
3C5000 1 2

__m256i __lasx_xvxor_v (__m256i a, __m256i b)

Synopsis

__m256i __lasx_xvxor_v (__m256i a, __m256i b)
#include <lasxintrin.h>
Instruction: xvxor.v xr, xr, xr
CPU Flags: LASX

Description

Compute bitwise XOR between elements in a and b.

Operation

for (int i = 0; i < 4; i++) {
  dst.dword[i] = a.dword[i] ^ b.dword[i];
}

Tested on real machine.

Latency and Throughput

CPU Latency Throughput (IPC)
3A6000 1 4
3C5000 1 2

__m256i __lasx_xvxori_b (__m256i a, imm0_255 imm)

Synopsis

__m256i __lasx_xvxori_b (__m256i a, imm0_255 imm)
#include <lasxintrin.h>
Instruction: xvxori.b xr, xr, imm
CPU Flags: LASX

Description

Compute bitwise XOR between elements in a and imm.

Operation

for (int i = 0; i < 32; i++) {
  dst.byte[i] = a.byte[i] ^ imm;
}

Tested on real machine.

Latency and Throughput

CPU Latency Throughput (IPC)
3A6000 1 4
3C5000 1 2