Logical

Generated from include/msa.h. This page contains 14 intrinsics.

v16u8 __msa_and_v (v16u8 a, v16u8 b)

Synopsis

v16u8 __msa_and_v (v16u8 a, v16u8 b)
#include <msa.h>
Instruction: and.v
Builtin: __builtin_msa_and_v
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:402

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 __msa_and_v __builtin_msa_and_v

v16u8 __msa_andi_b (v16u8 a, int imm)

Synopsis

v16u8 __msa_andi_b (v16u8 a, int imm)
#include <msa.h>
Instruction: andi.b
Builtin: __builtin_msa_andi_b
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:403

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 __msa_andi_b __builtin_msa_andi_b

v16u8 __msa_bmnz_v (v16u8 a, v16u8 b, v16u8 c)

Synopsis

v16u8 __msa_bmnz_v (v16u8 a, v16u8 b, v16u8 c)
#include <msa.h>
Instruction: bmnz.v
Builtin: __builtin_msa_bmnz_v
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:410

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);

Header Mapping

#define __msa_bmnz_v __builtin_msa_bmnz_v

v16u8 __msa_bmnzi_b (v16u8 a, v16u8 b, int imm)

Synopsis

v16u8 __msa_bmnzi_b (v16u8 a, v16u8 b, int imm)
#include <msa.h>
Instruction: bmnzi.b
Builtin: __builtin_msa_bmnzi_b
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:411

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);

Header Mapping

#define __msa_bmnzi_b __builtin_msa_bmnzi_b

v16u8 __msa_bmz_v (v16u8 a, v16u8 b, v16u8 c)

Synopsis

v16u8 __msa_bmz_v (v16u8 a, v16u8 b, v16u8 c)
#include <msa.h>
Instruction: bmz.v
Builtin: __builtin_msa_bmz_v
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:412

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);

Header Mapping

#define __msa_bmz_v __builtin_msa_bmz_v

v16u8 __msa_bmzi_b (v16u8 a, v16u8 b, int imm)

Synopsis

v16u8 __msa_bmzi_b (v16u8 a, v16u8 b, int imm)
#include <msa.h>
Instruction: bmzi.b
Builtin: __builtin_msa_bmzi_b
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:413

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);

Header Mapping

#define __msa_bmzi_b __builtin_msa_bmzi_b

v16u8 __msa_bsel_v (v16u8 a, v16u8 b, v16u8 c)

Synopsis

v16u8 __msa_bsel_v (v16u8 a, v16u8 b, v16u8 c)
#include <msa.h>
Instruction: bsel.v
Builtin: __builtin_msa_bsel_v
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:414

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);

Header Mapping

#define __msa_bsel_v __builtin_msa_bsel_v

v16u8 __msa_bseli_b (v16u8 a, v16u8 b, int imm)

Synopsis

v16u8 __msa_bseli_b (v16u8 a, v16u8 b, int imm)
#include <msa.h>
Instruction: bseli.b
Builtin: __builtin_msa_bseli_b
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:415

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);

Header Mapping

#define __msa_bseli_b __builtin_msa_bseli_b

v16u8 __msa_nor_v (v16u8 a, v16u8 b)

Synopsis

v16u8 __msa_nor_v (v16u8 a, v16u8 b)
#include <msa.h>
Instruction: nor.v
Builtin: __builtin_msa_nor_v
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:406

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 __msa_nor_v __builtin_msa_nor_v

v16u8 __msa_nori_b (v16u8 a, int imm)

Synopsis

v16u8 __msa_nori_b (v16u8 a, int imm)
#include <msa.h>
Instruction: nori.b
Builtin: __builtin_msa_nori_b
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:407

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 __msa_nori_b __builtin_msa_nori_b

v16u8 __msa_or_v (v16u8 a, v16u8 b)

Synopsis

v16u8 __msa_or_v (v16u8 a, v16u8 b)
#include <msa.h>
Instruction: or.v
Builtin: __builtin_msa_or_v
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:404

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

#define __msa_or_v __builtin_msa_or_v

v16u8 __msa_ori_b (v16u8 a, int imm)

Synopsis

v16u8 __msa_ori_b (v16u8 a, int imm)
#include <msa.h>
Instruction: ori.b
Builtin: __builtin_msa_ori_b
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:405

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

#define __msa_ori_b __builtin_msa_ori_b

v16u8 __msa_xor_v (v16u8 a, v16u8 b)

Synopsis

v16u8 __msa_xor_v (v16u8 a, v16u8 b)
#include <msa.h>
Instruction: xor.v
Builtin: __builtin_msa_xor_v
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:408

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

#define __msa_xor_v __builtin_msa_xor_v

v16u8 __msa_xori_b (v16u8 a, int imm)

Synopsis

v16u8 __msa_xori_b (v16u8 a, int imm)
#include <msa.h>
Instruction: xori.b
Builtin: __builtin_msa_xori_b
CPU Flags: __mips_msa
Kind: alias
Source: include/msa.h:409

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

#define __msa_xori_b __builtin_msa_xori_b