Move
On this Page
Move¶
Mov¶
Represents MOV instruction.
Intrinsics Prototype and Arguments
float s_f32_mov(float a, int switches=0, float income={}, bool predicate=1, bool polarity=0) |
bf16 s_bf16_mov(bf16 a, int switches=0, bf16 income={}, bool predicate=1, bool polarity=0) |
int32_t s_i32_mov(int32_t a, int switches=0, int32_t income={}, bool predicate=1, bool polarity=0) |
uint32_t s_u32_mov(uint32_t a, int switches=0, uint32_t income={}, bool predicate=1, bool polarity=0) |
int16_t s_i16_mov(int16_t a, int switches=0, int16_t income={}, bool predicate=1, bool polarity=0) |
uint16_t s_u16_mov(uint16_t a, int switches=0, uint16_t income={}, bool predicate=1, bool polarity=0) |
int8_t s_i8_mov(int8_t a, int switches=0, int8_t income={}, bool predicate=1, bool polarity=0) |
uint8_t s_u8_mov(uint8_t a, int switches=0, uint8_t income={}, bool predicate=1, bool polarity=0) |
bool s_i1_mov(bool a, int switches=0, bool income={}, bool predicate=1, bool polarity=0) |
float64 v_f32_mov_vb(float64 a, int switches, float64 income, bool64 predicate, bool polarity=0) |
bfloat128 v_bf16_mov_vb(bfloat128 a, int switches, bfloat128 income, bool128 predicate, bool polarity=0) |
int64 v_i32_mov_vb(int64 a, int switches, int64 income, bool64 predicate, bool polarity=0) |
uint64 v_u32_mov_vb(uint64 a, int switches, uint64 income, bool64 predicate, bool polarity=0) |
short128 v_i16_mov_vb(short128 a, int switches, short128 income, bool128 predicate, bool polarity=0) |
ushort128 v_u16_mov_vb(ushort128 a, int switches, ushort128 income, bool128 predicate, bool polarity=0) |
char256 v_i8_mov_vb(char256 a, int switches, char256 income, bool256 predicate, bool polarity=0) |
uchar256 v_u8_mov_vb(uchar256 a, int switches, uchar256 income, bool256 predicate, bool polarity=0) |
bool256 v_i1_mov_vb(bool256 a, int switches, bool256 income, bool256 predicate, bool polarity=0) |
float64 v_f32_mov_b(float64 a, int switches=0, float64 income={}, bool predicate=1, bool polarity=0) |
bfloat128 v_bf16_mov_b(bfloat128 a, int switches=0, bfloat128 income={}, bool predicate=1, bool polarity=0) |
int64 v_i32_mov_b(int64 a, int switches=0, int64 income={}, bool predicate=1, bool polarity=0) |
uint64 v_u32_mov_b(uint64 a, int switches=0, uint64 income={}, bool predicate=1, bool polarity=0) |
short128 v_i16_mov_b(short128 a, int switches=0, short128 income={}, bool predicate=1, bool polarity=0) |
ushort128 v_u16_mov_b(ushort128 a, int switches=0, ushort128 income={}, bool predicate=1, bool polarity=0) |
char256 v_i8_mov_b(char256 a, int switches=0, char256 income={}, bool predicate=1, bool polarity=0) |
uchar256 v_u8_mov_b(uchar256 a, int switches=0, uchar256 income={}, bool predicate=1, bool polarity=0) |
bool256 v_i1_mov_b(bool256 a, int switches=0, bool256 income={}, bool predicate=1, bool polarity=0) |
a |
Source (SRC1). |
switches |
Instruction switches. |
income |
This value is returned if the predicate is false. |
predicate |
Predicate value for the instruction. |
polarity |
True if polarity of the predicate is inverted. |
Result of operation - move a to DEST.
Mov using Switch FLAVOR¶
Represents MOV instruction with argument FLAVOR.
Intrinsics Prototype and Arguments
bool256 v_i1_mov_flavor_b(int32_t a, const int flavor, int switches, bool256 income, bool predicate=1, bool polarity=0) |
bool256 v_i1_mov_flavor_vb(int32_t a, const int flavor, int switches, bool256 income, bool256 predicate, bool polarity=0) |
a |
Source (SRC1). |
flavor |
Selects section of VPRF participated in the operation [0-8]. 0-7 map to 8 VPRF sections, when flavor is set to 8 - mov to all 8 sections. |
switches |
Instruction switches. |
income |
This value is returned if the predicate is false. |
predicate |
Predicate value for the instruction. |
polarity |
True if polarity of the predicate is inverted. |
Result of operation - move a to one or all 8 sections of DEST.
Move from SPRF to VPRF¶
Represents move from Scalar Predicate Register to Vector Predicate Register.
Intrinsics Prototype and Arguments
bool256 v_i1_mov_i1_b(bool a, int switches=0, bool256 income={}, bool predicate=1, bool polarity=0) |
bool256 v_i1_mov_i1_vb(bool a, int switches, bool256 income, bool256 predicate, bool polarity=0) |
a |
Source (SRC1). |
switches |
Instruction switches. |
income |
This value is returned if the predicate is false. |
predicate |
Predicate value for the instruction. |
polarity |
True if polarity of the predicate is inverted. |
Result of operation - broadcast a to DEST.
Move Dual Group¶
Represents MOV_DUAL_GROUP instruction.
Intrinsics Prototype and Arguments
float64 v_f32_mov_dual_group_vb(float64 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, float64 income, bool64 predicate, bool polarity=0) |
float64 v_f32_mov_dual_group_b(float64 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, float64 income, bool predicate=1, bool polarity=0) |
bfloat128 v_bf16_mov_dual_group_vb(bfloat128 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, bfloat128 income, bool128 predicate, bool polarity=0) |
bfloat128 v_bf16_mov_dual_group_b(bfloat128 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, bfloat128 income, bool predicate=1, bool polarity=0) |
int64 v_i32_mov_dual_group_vb(int64 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, int64 income, bool64 predicate, bool polarity=0) |
int64 v_i32_mov_dual_group_b(int64 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, int64 income, bool predicate=1, bool polarity=0) |
uint64 v_u32_mov_dual_group_vb(uint64 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, uint64 income, bool64 predicate, bool polarity=0) |
uint64 v_u32_mov_dual_group_b(uint64 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, uint64 income, bool predicate=1, bool polarity=0) |
short128 v_i16_mov_dual_group_vb(short128 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, short128 income, bool128 predicate, bool polarity=0) |
short128 v_i16_mov_dual_group_b(short128 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, short128 income, bool predicate=1, bool polarity=0) |
ushort128 v_u16_mov_dual_group_vb(ushort128 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, ushort128 income, bool128 predicate, bool polarity=0) |
ushort128 v_u16_mov_dual_group_b(ushort128 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, ushort128 income, bool predicate=1, bool polarity=0) |
char256 v_i8_mov_dual_group_vb(char256 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, char256 income, bool256 predicate, bool polarity=0) |
char256 v_i8_mov_dual_group_b(char256 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, char256 income, bool predicate=1, bool polarity=0) |
uchar256 v_u8_mov_dual_group_vb(uchar256 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, uchar256 income, bool256 predicate, bool polarity=0) |
uchar256 v_u8_mov_dual_group_b(uchar256 a, const uint32_t b, const int src_dg, const int dest_dg, int switches, uchar256 income, bool predicate=1, bool polarity=0) |
a |
Source (SRC1). |
b |
Byte write mask. |
src_dg |
Source dual group {0, 1, 2, 3}. |
dest_dg |
Destination dual group {0, 1, 2, 3}. |
switches |
Instruction switches. |
income |
This value is returned if the predicate is false or when no elements are moved to the target lanes. |
predicate |
Predicate value for the instruction. |
polarity |
True if polarity of the predicate is inverted. |
Allowed switches:
SW_WR_LOWER_GROUP If set, the lower group in the output dual group is written with respect to the Byte write mask.
SW_WR_UPPER_GROUP If set, the lower group in the output dual group is written with respect to the Byte write mask.
Result of operation.
Move Dual Group using ALL switch¶
Represents MOV_DUAL_GROUP instruction with ALL switch.
Intrinsics Prototype and Arguments
float64 v_f32_mov_dual_group_all_vb(float64 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, float64 income, bool64 predicate, bool polarity=0) |
float64 v_f32_mov_dual_group_all_b(float64 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, float64 income, bool predicate=1, bool polarity=0) |
bfloat128 v_bf16_mov_dual_group_all_vb(bfloat128 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, bfloat128 income, bool128 predicate, bool polarity=0) |
bfloat128 v_bf16_mov_dual_group_all_b(bfloat128 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, bfloat128 income, bool predicate=1, bool polarity=0) |
int64 v_i32_mov_dual_group_all_vb(int64 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, int64 income, bool64 predicate, bool polarity=0) |
int64 v_i32_mov_dual_group_all_b(int64 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, int64 income, bool predicate=1, bool polarity=0) |
uint64 v_u32_mov_dual_group_all_vb(uint64 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, uint64 income, bool64 predicate, bool polarity=0) |
uint64 v_u32_mov_dual_group_all_b(uint64 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, uint64 income, bool predicate=1, bool polarity=0) |
short128 v_i16_mov_dual_group_all_vb(short128 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, short128 income, bool128 predicate, bool polarity=0) |
short128 v_i16_mov_dual_group_all_b(short128 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, short128 income, bool predicate=1, bool polarity=0) |
ushort128 v_u16_mov_dual_group_all_vb(ushort128 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, ushort128 income, bool128 predicate, bool polarity=0) |
ushort128 v_u16_mov_dual_group_all_b(ushort128 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, ushort128 income, bool predicate=1, bool polarity=0) |
char256 v_i8_mov_dual_group_all_vb(char256 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, char256 income, bool256 predicate, bool polarity=0) |
char256 v_i8_mov_dual_group_all_b(char256 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, char256 income, bool predicate=1, bool polarity=0) |
uchar256 v_u8_mov_dual_group_all_vb(uchar256 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, uchar256 income, bool256 predicate, bool polarity=0) |
uchar256 v_u8_mov_dual_group_all_b(uchar256 a, const uint32_t b, const int sdg0, const int sdg1, const int sdg2, const int sdg3, int switches, uchar256 income, bool predicate=1, bool polarity=0) |
a |
Source (SRC1). |
b |
Byte write mask. |
sdg0 |
Source dual group 0 {0, 1, 2, 3}. |
sdg1 |
Source dual group 1 {0, 1, 2, 3}. |
sdg2 |
Source dual group 2 {0, 1, 2, 3}. |
sdg3 |
Source dual group 3 {0, 1, 2, 3}. |
switches |
Instruction switches. See also helper macro MkWrA(weg0, weg1, weg2, weg3). |
income |
This value is returned if the predicate is false. |
predicate |
Predicate value for the instruction. |
polarity |
True if polarity of the predicate is inverted. |
Allowed switches:
SW_WR_LOWER_GROUP0 If set, the lower group in the output dual group 0 is written with respect to the Byte write mask.
SW_WR_LOWER_GROUP1 If set, the lower group in the output dual group 1 is written with respect to the Byte write mask.
SW_WR_LOWER_GROUP2 If set, the lower group in the output dual group 2 is written with respect to the Byte write mask.
SW_WR_LOWER_GROUP3 If set, the lower group in the output dual group 3 is written with respect to the Byte write mask.
SW_WR_UPPER_GROUP0 If set, the upper group in the output dual group 0 is written with respect to the Byte write mask.
SW_WR_UPPER_GROUP1 If set, the upper group in the output dual group 1 is written with respect to the Byte write mask.
SW_WR_UPPER_GROUP2 If set, the upper group in the output dual group 2 is written with respect to the Byte write mask.
SW_WR_UPPER_GROUP3 If set, the upper group in the output dual group 3 is written with respect to the Byte write mask.
Result of operation.
Move Group¶
Represents MOV_GROUP instruction.
Intrinsics Prototype and Arguments
float64 v_f32_mov_group_vb(float64 a, uint32_t b, int switches, float64 income, bool64 predicate, bool polarity=0) |
float64 v_f32_mov_group_b(float64 a, uint32_t b, int switches, float64 income, bool predicate=1, bool polarity=0) |
bfloat128 v_bf16_mov_group_vb(bfloat128 a, uint32_t b, int switches, bfloat128 income, bool128 predicate, bool polarity=0) |
bfloat128 v_bf16_mov_group_b(bfloat128 a, uint32_t b, int switches, bfloat128 income, bool predicate=1, bool polarity=0) |
int64 v_i32_mov_group_vb(int64 a, uint32_t b, int switches, int64 income, bool64 predicate, bool polarity=0) |
int64 v_i32_mov_group_b(int64 a, uint32_t b, int switches, int64 income, bool predicate=1, bool polarity=0) |
uint64 v_u32_mov_group_vb(uint64 a, uint32_t b, int switches, uint64 income, bool64 predicate, bool polarity=0) |
uint64 v_u32_mov_group_b(uint64 a, uint32_t b, int switches, uint64 income, bool predicate=1, bool polarity=0) |
short128 v_i16_mov_group_vb(short128 a, uint32_t b, int switches, short128 income, bool128 predicate, bool polarity=0) |
short128 v_i16_mov_group_b(short128 a, uint32_t b, int switches, short128 income, bool predicate=1, bool polarity=0) |
ushort128 v_u16_mov_group_vb(ushort128 a, uint32_t b, int switches, ushort128 income, bool128 predicate, bool polarity=0) |
ushort128 v_u16_mov_group_b(ushort128 a, uint32_t b, int switches, ushort128 income, bool predicate=1, bool polarity=0) |
char256 v_i8_mov_group_vb(char256 a, uint32_t b, int switches, char256 income, bool256 predicate, bool polarity=0) |
char256 v_i8_mov_group_b(char256 a, uint32_t b, int switches, char256 income, bool predicate=1, bool polarity=0) |
uchar256 v_u8_mov_group_vb(uchar256 a, uint32_t b, int switches, uchar256 income, bool256 predicate, bool polarity=0) |
uchar256 v_u8_mov_group_b(uchar256 a, uint32_t b, int switches, uchar256 income, bool predicate=1, bool polarity=0) |
a |
Source (SRC1). |
b |
Byte write mask. |
switches |
Instruction switches. |
income |
This value is returned if the predicate is false or when no elements are moved to the target lanes. |
predicate |
Predicate value for the instruction. |
polarity |
True if polarity of the predicate is inverted. |
Allowed switches:
[GROUP_EN] - when set group is written according to b.
SW_GROUP0_EN
SW_GROUP1_EN
[DUAL_GROUP_EN] - when set dual group is written according to GROUP_EN and b.
SW_DUAL_GROUP0_EN
SW_DUAL_GROUP1_EN
SW_DUAL_GROUP2_EN
SW_DUAL_GROUP3_EN
Result of operation.