Skip to content

Commit 9f29d87

Browse files
committed
fixup! [AArch64][llvm] Armv9.7-A: Add support for SVE2p3 LUTI6 operations
Test movprfx properly and remove parameters from sve2_luti6_vector since it's only used once.
1 parent 294ced1 commit 9f29d87

File tree

4 files changed

+21
-25
lines changed

4 files changed

+21
-25
lines changed

llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4667,7 +4667,7 @@ let Predicates = [HasSVE2p3_or_SME2p3] in {
46674667
// SVE2.3 instructions
46684668
//===----------------------------------------------------------------------===//
46694669
let Predicates = [HasSVE2p3] in {
4670-
def LUTI6_Z2ZZ : sve2_luti6_vector<ZPR8, ZZ_b, 0b00011, "luti6">;
4670+
def LUTI6_Z2ZZ : sve2_luti6_vector<"luti6">;
46714671
}
46724672

46734673
//===----------------------------------------------------------------------===//

llvm/lib/Target/AArch64/SVEInstrFormats.td

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11287,20 +11287,16 @@ multiclass sve2_luti6_vector_index<string mnemonic> {
1128711287
}
1128811288

1128911289
// Look up table
11290-
class sve2_luti6_vector<ZPRRegOp zd_ty, RegisterOperand zn_ty,
11291-
bits<5>opc, string mnemonic>
11292-
: I<(outs zd_ty:$Zd), (ins zn_ty:$Zn, ZPRAny:$Zm),
11290+
class sve2_luti6_vector<string mnemonic>
11291+
: I<(outs ZPR8:$Zd), (ins ZZ_b:$Zn, ZPRAny:$Zm),
1129311292
mnemonic, "\t$Zd, $Zn, $Zm",
1129411293
"", []>, Sched<[]> {
1129511294
bits<5> Zd;
1129611295
bits<5> Zn;
1129711296
bits<5> Zm;
11298-
let Inst{31-24} = 0b01000101;
11299-
let Inst{23-22} = opc{4-3};
11300-
let Inst{21} = 0b1;
11297+
let Inst{31-21} = 0b01000101001;
1130111298
let Inst{20-16} = Zm;
11302-
let Inst{15-13} = 0b101;
11303-
let Inst{12-10} = opc{2-0};
11299+
let Inst{15-10} = 0b101011;
1130411300
let Inst{9-5} = Zn;
1130511301
let Inst{4-0} = Zd;
1130611302
}

llvm/test/MC/AArch64/SME2p3/luti6-diagnostics.s

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ luti6 z0.d, zt0, z0
2222
// Negative tests for instructions that are incompatible with movprfx
2323

2424
movprfx z0.h, p0/m, z7.h
25-
luti6 z0.b, zt0, z0
25+
luti6 z0.b, zt0, z1
2626
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
27-
// CHECK-NEXT: luti6 z0.b, zt0, z0
27+
// CHECK-NEXT: luti6 z0.b, zt0, z1
2828
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
2929

3030
movprfx z0, z7
31-
luti6 z0.b, zt0, z0
31+
luti6 z0.b, zt0, z1
3232
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
33-
// CHECK-NEXT: luti6 z0.b, zt0, z0
33+
// CHECK-NEXT: luti6 z0.b, zt0, z1
3434
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
3535

3636
// --------------------------------------------------------------------------//
@@ -164,13 +164,13 @@ luti6 { z1.h, z5.h, z9.h, z13.h }, zt0, { z0 - z2 }
164164
// Negative tests for instructions that are incompatible with movprfx
165165

166166
movprfx z0.h, p0/m, z7.h
167-
luti6 { z1.b, z5.b, z9.b, z13.b }, zt0, { z0 - z2 }
167+
luti6 { z0.b, z4.b, z8.b, z12.b }, zt0, { z2 - z4 }
168168
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
169-
// CHECK-NEXT: luti6 { z1.b, z5.b, z9.b, z13.b }, zt0, { z0 - z2 }
169+
// CHECK-NEXT: luti6 { z0.b, z4.b, z8.b, z12.b }, zt0, { z2 - z4 }
170170
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
171171

172172
movprfx z0, z7
173-
luti6 { z1.b, z5.b, z9.b, z13.b }, zt0, { z0 - z2 }
173+
luti6 { z0.b, z4.b, z8.b, z12.b }, zt0, { z0 - z2 }
174174
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
175-
// CHECK-NEXT: luti6 { z1.b, z5.b, z9.b, z13.b }, zt0, { z0 - z2 }
175+
// CHECK-NEXT: luti6 { z0.b, z4.b, z8.b, z12.b }, zt0, { z0 - z2 }
176176
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

llvm/test/MC/AArch64/SVE2p3/luti6-diagnostics.s

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ luti6 z10.s, { z0.b, z1.b }, z0
1717
// Negative tests for instructions that are incompatible with movprfx
1818

1919
movprfx z0.h, p0/m, z7.h
20-
luti6 z10.b, { z0.b, z1.b }, z0
20+
luti6 z0.b, { z2.b, z3.b }, z4
2121
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
22-
// CHECK-NEXT: luti6 z10.b, { z0.b, z1.b }, z0
22+
// CHECK-NEXT: luti6 z0.b, { z2.b, z3.b }, z4
2323
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
2424

2525
movprfx z0, z7
26-
luti6 z10.b, { z0.b, z1.b }, z0
26+
luti6 z0.b, { z2.b, z3.b }, z4
2727
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
28-
// CHECK-NEXT: luti6 z10.b, { z0.b, z1.b }, z0
28+
// CHECK-NEXT: luti6 z0.b, { z2.b, z3.b }, z4
2929
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
3030

3131
// --------------------------------------------------------------------------//
@@ -58,13 +58,13 @@ luti6 z10.h, { z0.h, z1.h }, z0[2]
5858
// Negative tests for instructions that are incompatible with movprfx
5959

6060
movprfx z0.h, p0/m, z7.h
61-
luti6 z10.h, { z0.h, z1.h }, z0[0]
61+
luti6 z0.h, { z2.h, z3.h }, z4[0]
6262
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
63-
// CHECK-NEXT: luti6 z10.h, { z0.h, z1.h }, z0[0]
63+
// CHECK-NEXT: luti6 z0.h, { z2.h, z3.h }, z4[0]
6464
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
6565

6666
movprfx z0, z7
67-
luti6 z10.h, { z0.h, z1.h }, z0[0]
67+
luti6 z0.h, { z2.h, z3.h }, z4[0]
6868
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
69-
// CHECK-NEXT: luti6 z10.h, { z0.h, z1.h }, z0[0]
69+
// CHECK-NEXT: luti6 z0.h, { z2.h, z3.h }, z4[0]
7070
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:

0 commit comments

Comments
 (0)