Skip to content

Commit 66c5ca0

Browse files
committed
fixup! Remove some range tests, and improve SME2_ZA_TMOP_Pat
1 parent 51462fa commit 66c5ca0

File tree

2 files changed

+4
-56
lines changed

2 files changed

+4
-56
lines changed

clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_tmop.cpp

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -57,116 +57,64 @@ void test_imm(svuint8x2_t zn_u8, svuint8_t zm_u8,
5757
svtmopa_lane_za32_s8_s8(0, zn_s8, zm_s8, zk, 4);
5858
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
5959
svtmopa_lane_za32_s8_s8(4, zn_s8, zm_s8, zk, 0);
60-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
61-
svtmopa_lane_za32_s8_s8(0, zn_s8, zm_s8, zk, -1);
62-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
63-
svtmopa_lane_za32_s8_s8(-1, zn_s8, zm_s8, zk, 0);
6460

6561
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
6662
svtmopa_lane_za32_u8_u8(0, zn_u8, zm_u8, zk, 4);
6763
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
6864
svtmopa_lane_za32_u8_u8(4, zn_u8, zm_u8, zk, 0);
69-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
70-
svtmopa_lane_za32_u8_u8(0, zn_u8, zm_u8, zk, -1);
71-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
72-
svtmopa_lane_za32_u8_u8(-1, zn_u8, zm_u8, zk, 0);
7365

7466
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
7567
svtmopa_lane_za32_s8_u8(0, zn_s8, zm_u8, zk, 4);
7668
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
7769
svtmopa_lane_za32_s8_u8(4, zn_s8, zm_u8, zk, 0);
78-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
79-
svtmopa_lane_za32_s8_u8(0, zn_s8, zm_u8, zk, -1);
80-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
81-
svtmopa_lane_za32_s8_u8(-1, zn_s8, zm_u8, zk, 0);
8270

8371
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
8472
svtmopa_lane_za32_u8_s8(0, zn_u8, zm_s8, zk, 4);
8573
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
8674
svtmopa_lane_za32_u8_s8(4, zn_u8, zm_s8, zk, 0);
87-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
88-
svtmopa_lane_za32_u8_s8(0, zn_u8, zm_s8, zk, -1);
89-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
90-
svtmopa_lane_za32_u8_s8(-1, zn_u8, zm_s8, zk, 0);
9175

9276
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
9377
svtmopa_lane_za32_s16_s16(0, zn_s16, zm_s16, zk, 4);
9478
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
9579
svtmopa_lane_za32_s16_s16(4, zn_s16, zm_s16, zk, 0);
96-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
97-
svtmopa_lane_za32_s16_s16(0, zn_s16, zm_s16, zk, -1);
98-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
99-
svtmopa_lane_za32_s16_s16(-1, zn_s16, zm_s16, zk, 0);
10080

10181
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
10282
svtmopa_lane_za32_u16_u16(0, zn_u16, zm_u16, zk, 4);
10383
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
10484
svtmopa_lane_za32_u16_u16(4, zn_u16, zm_u16, zk, 0);
105-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
106-
svtmopa_lane_za32_u16_u16(0, zn_u16, zm_u16, zk, -1);
107-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
108-
svtmopa_lane_za32_u16_u16(-1, zn_u16, zm_u16, zk, 0);
10985

11086
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
11187
svtmopa_lane_za32_f16_f16(0, zn_f16, zm_f16, zk, 4);
11288
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
11389
svtmopa_lane_za32_f16_f16(4, zn_f16, zm_f16, zk, 0);
114-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
115-
svtmopa_lane_za32_f16_f16(0, zn_f16, zm_f16, zk, -1);
116-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
117-
svtmopa_lane_za32_f16_f16(-1, zn_f16, zm_f16, zk, 0);
11890

11991
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
12092
svtmopa_lane_za32_f32_f32(0, zn_f32, zm_f32, zk, 4);
12193
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
12294
svtmopa_lane_za32_f32_f32(4, zn_f32, zm_f32, zk, 0);
123-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
124-
svtmopa_lane_za32_f32_f32(0, zn_f32, zm_f32, zk, -1);
125-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
126-
svtmopa_lane_za32_f32_f32(-1, zn_f32, zm_f32, zk, 0);
12795

12896
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
12997
svtmopa_lane_za32_bf16_bf16(0, zn_bf16, zm_bf16, zk, 4);
13098
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
13199
svtmopa_lane_za32_bf16_bf16(4, zn_bf16, zm_bf16, zk, 0);
132-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
133-
svtmopa_lane_za32_bf16_bf16(0, zn_bf16, zm_bf16, zk, -1);
134-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
135-
svtmopa_lane_za32_bf16_bf16(-1, zn_bf16, zm_bf16, zk, 0);
136100

137101
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
138102
svtmopa_lane_za16_f16_f16(0, zn_f16, zm_f16, zk, 4);
139103
// expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
140104
svtmopa_lane_za16_f16_f16(2, zn_f16, zm_f16, zk, 0);
141-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
142-
svtmopa_lane_za16_f16_f16(0, zn_f16, zm_f16, zk, -1);
143-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 1]}}
144-
svtmopa_lane_za16_f16_f16(-1, zn_f16, zm_f16, zk, 0);
145105

146106
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
147107
svtmopa_lane_za16_bf16_bf16(0, zn_bf16, zm_bf16, zk, 4);
148108
// expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
149109
svtmopa_lane_za16_bf16_bf16(2, zn_bf16, zm_bf16, zk, 0);
150-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
151-
svtmopa_lane_za16_bf16_bf16(0, zn_bf16, zm_bf16, zk, -1);
152-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 1]}}
153-
svtmopa_lane_za16_bf16_bf16(-1, zn_bf16, zm_bf16, zk, 0);
154110

155111
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
156112
svtmopa_lane_za16_mf8_mf8_fpm(0, zn_f8, zm_f8, zk, 4, fpm);
157113
// expected-error@+1 {{argument value 2 is outside the valid range [0, 1]}}
158114
svtmopa_lane_za16_mf8_mf8_fpm(2, zn_f8, zm_f8, zk, 0, fpm);
159-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
160-
svtmopa_lane_za16_mf8_mf8_fpm(0, zn_f8, zm_f8, zk, -1, fpm);
161-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 1]}}
162-
svtmopa_lane_za16_mf8_mf8_fpm(-1, zn_f8, zm_f8, zk, 0, fpm);
163115

164116
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
165117
svtmopa_lane_za32_mf8_mf8_fpm(0, zn_f8, zm_f8, zk, 4, fpm);
166118
// expected-error@+1 {{argument value 4 is outside the valid range [0, 3]}}
167119
svtmopa_lane_za32_mf8_mf8_fpm(4, zn_f8, zm_f8, zk, 0, fpm);
168-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
169-
svtmopa_lane_za32_mf8_mf8_fpm(0, zn_f8, zm_f8, zk, -1, fpm);
170-
// expected-error@+1 {{argument value 18446744073709551615 is outside the valid range [0, 3]}}
171-
svtmopa_lane_za32_mf8_mf8_fpm(-1, zn_f8, zm_f8, zk, 0, fpm);
172120
}

llvm/lib/Target/AArch64/SMEInstrFormats.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,8 @@ class SME2_ZA_Tile_Vec_Multi_Multi_Pat<string name, SDPatternOperator intrinsic,
290290
: Pat<(intrinsic imm_ty:$tile, vt:$Zn1, vt:$Zn2, vt:$Zm1, vt:$Zm2),
291291
(!cast<Instruction>(name # _PSEUDO) $tile, (REG_SEQUENCE ZPR2Mul2, vt:$Zn1, zsub0, vt:$Zn2, zsub1), (REG_SEQUENCE ZPR2Mul2, vt:$Zm1, zsub0, vt:$Zm2, zsub1))>;
292292

293-
class SME2_ZA_TMOP_Pat<string name, SDPatternOperator intrinsic, Operand tile_imm, Operand imm_ty, ValueType vt>
294-
: Pat<(intrinsic tile_imm:$tile, vt:$Zn1, vt:$Zn2, vt:$Zm, nxv16i8:$Zk, imm_ty:$idx),
293+
class SME2_ZA_TMOP_Pat<string name, SDPatternOperator intrinsic, Operand tile_imm, ValueType vt>
294+
: Pat<(intrinsic tile_imm:$tile, vt:$Zn1, vt:$Zn2, vt:$Zm, nxv16i8:$Zk, timm32_0_3:$idx),
295295
(!cast<Instruction>(name # _PSEUDO) $tile, (REG_SEQUENCE ZPR2Mul2, vt:$Zn1, zsub0, vt:$Zn2, zsub1), $Zm, $Zk, $idx)>;
296296

297297

@@ -3585,7 +3585,7 @@ multiclass sme_tmopa_16b<bits<5> opc, RegisterOperand zn_ty, RegisterOperand zm_
35853585

35863586
def NAME # _PSEUDO : sme_sparse_outer_product_pseudo<zn_ty, zm_ty, SMEMatrixTileH>, SMEPseudo2Instr<NAME, 0>;
35873587

3588-
def : SME2_ZA_TMOP_Pat<NAME, !cast<SDPatternOperator>(intrinsic), timm32_0_1, timm32_0_3, vt>;
3588+
def : SME2_ZA_TMOP_Pat<NAME, !cast<SDPatternOperator>(intrinsic), timm32_0_1, vt>;
35893589
}
35903590

35913591
multiclass sme_tmopa_32b<bits<5> opc, RegisterOperand zn_ty, RegisterOperand zm_ty, ValueType vt, string mnemonic, string intrinsic> {
@@ -3595,7 +3595,7 @@ multiclass sme_tmopa_32b<bits<5> opc, RegisterOperand zn_ty, RegisterOperand zm_
35953595

35963596
def NAME # _PSEUDO : sme_sparse_outer_product_pseudo<zn_ty, zm_ty, SMEMatrixTileS>, SMEPseudo2Instr<NAME, 0>;
35973597

3598-
def : SME2_ZA_TMOP_Pat<NAME, !cast<SDPatternOperator>(intrinsic), timm32_0_1, timm32_0_3, vt>;
3598+
def : SME2_ZA_TMOP_Pat<NAME, !cast<SDPatternOperator>(intrinsic), timm32_0_3, vt>;
35993599
}
36003600

36013601
//===----------------------------------------------------------------------===///

0 commit comments

Comments
 (0)