@@ -38,16 +38,16 @@ class ArmSME_IntrOp<string mnemonic, list<int> overloadedOperands = [],
38
38
39
39
// Zero
40
40
def LLVM_aarch64_sme_zero : ArmSME_IntrOp<"zero">,
41
- Arguments<(ins Arg<I32, "Tile mask">)>;
41
+ Arguments<(ins Arg<I32, "Tile mask">:$tile_mask )>;
42
42
43
43
// MOP's
44
44
class ArmSME_IntrMopOverloadedOp<string mnemonic>
45
45
: ArmSME_IntrOp<mnemonic, [4]>,
46
- Arguments<(ins Arg<I32, "Virtual tile ID">,
47
- Arg<MOPPredicate, "LHS predicate">,
48
- Arg<MOPPredicate, "RHS predicate">,
49
- Arg<MOPVector, "LHS vector operand">,
50
- Arg<MOPVector, "RHS vector operand">)>;
46
+ Arguments<(ins Arg<I32, "Virtual tile ID">:$tile_id ,
47
+ Arg<MOPPredicate, "LHS predicate">:$lhs_predicate ,
48
+ Arg<MOPPredicate, "RHS predicate">:$rhs_predicate ,
49
+ Arg<MOPVector, "LHS vector operand">:$lhs_vector ,
50
+ Arg<MOPVector, "RHS vector operand">:$rhs_vector )>;
51
51
52
52
def LLVM_aarch64_sme_mopa : ArmSME_IntrMopOverloadedOp<"mopa">;
53
53
def LLVM_aarch64_sme_mops : ArmSME_IntrMopOverloadedOp<"mops">;
@@ -65,10 +65,10 @@ def LLVM_aarch64_sme_usmops_wide : ArmSME_IntrMopOverloadedOp<"usmops.wide">;
65
65
// Loads
66
66
class ArmSME_IntrLoadOp<string mnemonic>
67
67
: ArmSME_IntrOp<mnemonic>,
68
- Arguments<(ins Arg<LDSTPredicate, "Vector predicate">,
69
- Arg<LLVM_AnyPointer, "Load address">,
70
- Arg<I32, "Virtual tile ID">,
71
- Arg<I32, "Tile slice">)>;
68
+ Arguments<(ins Arg<LDSTPredicate, "Vector predicate">:$predicate ,
69
+ Arg<LLVM_AnyPointer, "Load address">:$load_address ,
70
+ Arg<I32, "Virtual tile ID">:$tile_id ,
71
+ Arg<I32, "Tile slice">:$tile_slice_index )>;
72
72
73
73
def LLVM_aarch64_sme_ld1b_horiz : ArmSME_IntrLoadOp<"ld1b.horiz">;
74
74
def LLVM_aarch64_sme_ld1h_horiz : ArmSME_IntrLoadOp<"ld1h.horiz">;
@@ -84,10 +84,10 @@ def LLVM_aarch64_sme_ld1q_vert : ArmSME_IntrLoadOp<"ld1q.vert">;
84
84
// Stores
85
85
class ArmSME_IntrStoreOp<string mnemonic>
86
86
: ArmSME_IntrOp<mnemonic>,
87
- Arguments<(ins Arg<LDSTPredicate, "Vector predicate">,
88
- Arg<LLVM_AnyPointer, "Store address", [MemWrite]>,
89
- Arg<I32, "Virtual tile ID">,
90
- Arg<I32, "Tile slice">)>;
87
+ Arguments<(ins Arg<LDSTPredicate, "Vector predicate">:$predicate ,
88
+ Arg<LLVM_AnyPointer, "Store address", [MemWrite]>:$store_address ,
89
+ Arg<I32, "Virtual tile ID">:$tild_id ,
90
+ Arg<I32, "Tile slice">:$tile_slice_index )>;
91
91
92
92
def LLVM_aarch64_sme_st1b_horiz : ArmSME_IntrStoreOp<"st1b.horiz">;
93
93
def LLVM_aarch64_sme_st1h_horiz : ArmSME_IntrStoreOp<"st1h.horiz">;
@@ -102,28 +102,28 @@ def LLVM_aarch64_sme_st1q_vert : ArmSME_IntrStoreOp<"st1q.vert">;
102
102
103
103
def LLVM_aarch64_sme_str
104
104
: ArmSME_IntrOp<"str">,
105
- Arguments<(ins Arg<I32, "Index">,
106
- Arg<LLVM_AnyPointer, "Store address", [MemWrite]>)>;
105
+ Arguments<(ins Arg<I32, "Index">:$index ,
106
+ Arg<LLVM_AnyPointer, "Store address", [MemWrite]>:$store_address )>;
107
107
108
108
// Vector to tile slice
109
109
class LLVM_aarch64_sme_write<string direction>
110
110
: ArmSME_IntrOp<"write." # direction, /*overloadedOperands=*/[3],
111
- [AllShapesMatch<["pg ", "vector"]>]>,
112
- Arguments<(ins Arg<I32, "Virtual tile ID">,
113
- Arg<I32, "Tile slice">,
114
- Arg<SVEPredicate, "Vector predicate">:$pg ,
111
+ [AllShapesMatch<["predicate ", "vector"]>]>,
112
+ Arguments<(ins Arg<I32, "Virtual tile ID">:$tile_id ,
113
+ Arg<I32, "Tile slice">:$tile_slice_index ,
114
+ Arg<SVEPredicate, "Vector predicate">:$predicate ,
115
115
Arg<SVEVector, "Vector operand">:$vector)>;
116
116
117
117
// Tile slice to vector
118
118
class LLVM_aarch64_sme_read<string direction>
119
119
: ArmSME_IntrOp<"read." # direction, /*overloadedOperands=*/[],
120
- [AllShapesMatch<["vector", "pg ", "res"]>,
120
+ [AllShapesMatch<["vector", "predicate ", "res"]>,
121
121
AllElementTypesMatch<["vector", "res"]>],
122
122
/*numResults=*/1, /*overloadedResults=*/[0]>,
123
123
Arguments<(ins Arg<SVEVector, "Vector operand">:$vector,
124
- Arg<SVEPredicate, "Vector predicate">:$pg ,
125
- Arg<I32, "Virtual tile ID">,
126
- Arg<I32, "Tile slice">)>;
124
+ Arg<SVEPredicate, "Vector predicate">:$predicate ,
125
+ Arg<I32, "Virtual tile ID">:$tile_id ,
126
+ Arg<I32, "Tile slice">:$tile_slice_index )>;
127
127
128
128
def LLVM_aarch64_sme_write_horiz : LLVM_aarch64_sme_write<"horiz">;
129
129
def LLVM_aarch64_sme_write_vert : LLVM_aarch64_sme_write<"vert">;
0 commit comments