Logical
Generated from include/loongson-asxintrin.h. This page contains 17 intrinsics.
__m256i __lasx_mxand_v (__m256i a, __m256i b)
Synopsis
__m256i __lasx_mxand_v (__m256i a, __m256i b)
#include <loongson-asxintrin.h>
Instruction: mxand.v
Builtin: __builtin_lasx_mxand_v
CPU Flags: __mips_loongson_asx
Kind: function
Source: include/loongson-asxintrin.h:1812
Description
Compute bitwise AND across the whole vector; immediate forms AND each byte with the immediate mask.
Operation
dst.bits = a.bits & (imm_or_b);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
return (__m256i)__builtin_lasx_mxand_v((v32u8)a, (v32u8)b);
__m256i __lasx_mxandi_b (__m256i a, unsigned char imm)
Synopsis
__m256i __lasx_mxandi_b (__m256i a, unsigned char imm)
#include <loongson-asxintrin.h>
Instruction: mxandi.b
Builtin: __builtin_lasx_mxandi_b
CPU Flags: __mips_loongson_asx
Kind: macro
Source: include/loongson-asxintrin.h:1818
Description
Compute bitwise AND across the whole vector; immediate forms AND each byte with the immediate mask.
Operation
dst.bits = a.bits & (imm_or_b);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
#define __lasx_mxandi_b(a, imm) ((__m256i)__builtin_lasx_mxandi_b((v32u8)(a), (imm)))
__m256i __lasx_mxbmnz_v (__m256i a, __m256i b, __m256i c)
Synopsis
__m256i __lasx_mxbmnz_v (__m256i a, __m256i b, __m256i c)
#include <loongson-asxintrin.h>
Instruction: mxbmnz.v
Builtin: __builtin_lasx_mxbmnz_v
CPU Flags: __mips_loongson_asx
Kind: function
Source: include/loongson-asxintrin.h:1844
Description
Use a as a bit mask and keep bits from b only where the mask bit is one; other bits become zero.
Operation
dst.bits = select_bits(mask=a, true_value=b, false_value=0);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
return (__m256i)__builtin_lasx_mxbmnz_v((v32u8)a, (v32u8)b, (v32u8)c);
__m256i __lasx_mxbmnzi_b (__m256i a, __m256i b, unsigned char imm)
Synopsis
__m256i __lasx_mxbmnzi_b (__m256i a, __m256i b, unsigned char imm)
#include <loongson-asxintrin.h>
Instruction: mxbmnzi.b
Builtin: __builtin_lasx_mxbmnzi_b
CPU Flags: __mips_loongson_asx
Kind: macro
Source: include/loongson-asxintrin.h:1850
Description
Use a as a bit mask and keep bits from b only where the mask bit is one; other bits become zero.
Operation
dst.bits = select_bits(mask=a, true_value=b, false_value=0);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
#define __lasx_mxbmnzi_b(a, b, imm) ((__m256i)__builtin_lasx_mxbmnzi_b((v32u8)(a), (v32u8)(b), (imm)))
__m256i __lasx_mxbmz_v (__m256i a, __m256i b, __m256i c)
Synopsis
__m256i __lasx_mxbmz_v (__m256i a, __m256i b, __m256i c)
#include <loongson-asxintrin.h>
Instruction: mxbmz.v
Builtin: __builtin_lasx_mxbmz_v
CPU Flags: __mips_loongson_asx
Kind: function
Source: include/loongson-asxintrin.h:1852
Description
Use a as a bit mask and keep bits from b only where the mask bit is zero; masked bits become zero.
Operation
dst.bits = select_bits(mask=a, true_value=0, false_value=b);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
return (__m256i)__builtin_lasx_mxbmz_v((v32u8)a, (v32u8)b, (v32u8)c);
__m256i __lasx_mxbmzi_b (__m256i a, __m256i b, unsigned char imm)
Synopsis
__m256i __lasx_mxbmzi_b (__m256i a, __m256i b, unsigned char imm)
#include <loongson-asxintrin.h>
Instruction: mxbmzi.b
Builtin: __builtin_lasx_mxbmzi_b
CPU Flags: __mips_loongson_asx
Kind: macro
Source: include/loongson-asxintrin.h:1858
Description
Use a as a bit mask and keep bits from b only where the mask bit is zero; masked bits become zero.
Operation
dst.bits = select_bits(mask=a, true_value=0, false_value=b);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
#define __lasx_mxbmzi_b(a, b, imm) ((__m256i)__builtin_lasx_mxbmzi_b((v32u8)(a), (v32u8)(b), (imm)))
__m256i __lasx_mxbsel (__m256i a, __m256i b, __m256i c)
Synopsis
__m256i __lasx_mxbsel (__m256i a, __m256i b, __m256i c)
#include <loongson-asxintrin.h>
Instruction: mxbsel
Builtin: __builtin_lasx_mxbsel
CPU Flags: __mips_loongson_asx
Kind: function
Source: include/loongson-asxintrin.h:4404
Description
Use a as a bit mask: choose bits from c where the mask bit is one, otherwise from b.
Operation
dst.bits = (a.bits & c.bits) | (~a.bits & b.bits);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 0.50/1 | 2 |
Header Mapping
return (__m256i) __builtin_lasx_mxbsel ((v32i8) a, (v32i8) b, (v32i8) c);
__m256i __lasx_mxbsel_v (__m256i a, __m256i b, __m256i c)
Synopsis
__m256i __lasx_mxbsel_v (__m256i a, __m256i b, __m256i c)
#include <loongson-asxintrin.h>
Instruction: mxbsel.v
Builtin: __builtin_lasx_mxbsel_v
CPU Flags: __mips_loongson_asx
Kind: function
Source: include/loongson-asxintrin.h:1860
Description
Use a as a bit mask: choose bits from c where the mask bit is one, otherwise from b.
Operation
dst.bits = (a.bits & c.bits) | (~a.bits & b.bits);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
return (__m256i)__builtin_lasx_mxbsel_v((v32u8)a, (v32u8)b, (v32u8)c);
__m256i __lasx_mxbseli_b (__m256i a, __m256i b, unsigned char imm)
Synopsis
__m256i __lasx_mxbseli_b (__m256i a, __m256i b, unsigned char imm)
#include <loongson-asxintrin.h>
Instruction: mxbseli.b
Builtin: __builtin_lasx_mxbseli_b
CPU Flags: __mips_loongson_asx
Kind: macro
Source: include/loongson-asxintrin.h:1866
Description
Use a as a bit mask: choose bits from c where the mask bit is one, otherwise from b.
Operation
dst.bits = (a.bits & c.bits) | (~a.bits & b.bits);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
#define __lasx_mxbseli_b(a, b, imm) ((__m256i)__builtin_lasx_mxbseli_b((v32u8)(a), (v32u8)(b), (imm)))
__m256i __lasx_mxnor_v (__m256i a, __m256i b)
Synopsis
__m256i __lasx_mxnor_v (__m256i a, __m256i b)
#include <loongson-asxintrin.h>
Instruction: mxnor.v
Builtin: __builtin_lasx_mxnor_v
CPU Flags: __mips_loongson_asx
Kind: function
Source: include/loongson-asxintrin.h:1828
Description
Compute bitwise NOR across the whole vector, producing the inverse of OR.
Operation
dst.bits = ~(a.bits | imm_or_b);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
return (__m256i)__builtin_lasx_mxnor_v((v32u8)a, (v32u8)b);
__m256i __lasx_mxnori_b (__m256i a, unsigned char imm)
Synopsis
__m256i __lasx_mxnori_b (__m256i a, unsigned char imm)
#include <loongson-asxintrin.h>
Instruction: mxnori.b
Builtin: __builtin_lasx_mxnori_b
CPU Flags: __mips_loongson_asx
Kind: macro
Source: include/loongson-asxintrin.h:1834
Description
Compute bitwise NOR across the whole vector, producing the inverse of OR.
Operation
dst.bits = ~(a.bits | imm_or_b);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
#define __lasx_mxnori_b(a, imm) ((__m256i)__builtin_lasx_mxnori_b((v32u8)(a), (imm)))
__m256i __lasx_mxor_v (__m256i a, __m256i b)
Synopsis
__m256i __lasx_mxor_v (__m256i a, __m256i b)
#include <loongson-asxintrin.h>
Instruction: mxor.v
Builtin: __builtin_lasx_mxor_v
CPU Flags: __mips_loongson_asx
Kind: function
Source: include/loongson-asxintrin.h:1820
Description
Compute bitwise OR across the whole vector; immediate forms OR each byte with the immediate mask.
Operation
dst.bits = a.bits | (imm_or_b);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
return (__m256i)__builtin_lasx_mxor_v((v32u8)a, (v32u8)b);
__m256i __lasx_mxori_b (__m256i a, unsigned char imm)
Synopsis
__m256i __lasx_mxori_b (__m256i a, unsigned char imm)
#include <loongson-asxintrin.h>
Instruction: mxori.b
Builtin: __builtin_lasx_mxori_b
CPU Flags: __mips_loongson_asx
Kind: macro
Source: include/loongson-asxintrin.h:1826
Description
Compute bitwise OR across the whole vector; immediate forms OR each byte with the immediate mask.
Operation
dst.bits = a.bits | (imm_or_b);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 2 | 2 |
Header Mapping
#define __lasx_mxori_b(a, imm) ((__m256i)__builtin_lasx_mxori_b((v32u8)(a), (imm)))
__m256i __lasx_mxvandn_v (__m256i a, __m256i b)
Synopsis
__m256i __lasx_mxvandn_v (__m256i a, __m256i b)
#include <loongson-asxintrin.h>
Instruction: mxvandn.v
Builtin: __builtin_lasx_mxvandn_v
CPU Flags: __mips_loongson_asx
Kind: function
Source: include/loongson-asxintrin.h:2795
Description
Clear bits from b wherever a has one bits, i.e. compute b & ~a across the whole vector.
Operation
dst.bits = b.bits & ~a.bits;
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
return (__m256i)__builtin_lasx_mxvandn_v((v32u8)a, (v32u8)b);
__m256i __lasx_mxxor_v (__m256i a, __m256i b)
Synopsis
__m256i __lasx_mxxor_v (__m256i a, __m256i b)
#include <loongson-asxintrin.h>
Instruction: mxxor.v
Builtin: __builtin_lasx_mxxor_v
CPU Flags: __mips_loongson_asx
Kind: function
Source: include/loongson-asxintrin.h:1836
Description
Compute bitwise XOR across the whole vector; immediate forms XOR each byte with the immediate mask.
Operation
dst.bits = a.bits ^ (imm_or_b);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
return (__m256i)__builtin_lasx_mxxor_v((v32u8)a, (v32u8)b);
__m256i __lasx_mxxori_b (__m256i a, unsigned char imm)
Synopsis
__m256i __lasx_mxxori_b (__m256i a, unsigned char imm)
#include <loongson-asxintrin.h>
Instruction: mxxori.b
Builtin: __builtin_lasx_mxxori_b
CPU Flags: __mips_loongson_asx
Kind: macro
Source: include/loongson-asxintrin.h:1842
Description
Compute bitwise XOR across the whole vector; immediate forms XOR each byte with the immediate mask.
Operation
dst.bits = a.bits ^ (imm_or_b);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 2 | 2 |
Header Mapping
#define __lasx_mxxori_b(a, imm) ((__m256i)__builtin_lasx_mxxori_b((v32u8)(a), (imm)))
__m256i __lasx_xxor_v (__m256i a, __m256i b)
Synopsis
__m256i __lasx_xxor_v (__m256i a, __m256i b)
#include <loongson-asxintrin.h>
Instruction: xxor.v
Builtin: __builtin_lasx_xxor_v
CPU Flags: __mips_loongson_asx
Kind: function
Source: include/loongson-asxintrin.h:4150
Description
Compute bitwise XOR across the whole vector; immediate forms XOR each byte with the immediate mask.
Operation
dst.bits = a.bits ^ (imm_or_b);
Latency and Throughput
| CPU | µarch | Latency | Throughput (IPC) |
|---|---|---|---|
| 3A4000 | GS464V | 1 | 2 |
Header Mapping
return (__m256i)__builtin_lasx_xxor_v((v32i8)a, (v32i8)b);