Skip to content

Commit 721759e

Browse files
committed
Tweak types
1 parent fec92e4 commit 721759e

File tree

3 files changed

+13
-15
lines changed

3 files changed

+13
-15
lines changed

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29773,11 +29773,11 @@ SDValue AArch64TargetLowering::LowerFixedLengthVECTOR_SHUFFLEToSVE(
2977329773
return convertFromScalableVector(DAG, VT, Op);
2977429774
}
2977529775

29776-
auto lowerToRevMergePassthru = [&](unsigned Opcode, SDValue Vec, EVT NewVT) {
29777-
auto Pg = getPredicateForVector(DAG, DL, NewVT);
29778-
SDValue RevOp = DAG.getNode(ISD::BITCAST, DL, NewVT, Vec);
29779-
auto Rev =
29780-
DAG.getNode(Opcode, DL, NewVT, Pg, RevOp, DAG.getUNDEF(ContainerVT));
29776+
auto lowerToRevMergePassthru = [&](unsigned Opcode, SDValue Vec,
29777+
EVT PredVecVT, EVT RevVT) {
29778+
auto Pg = getPredicateForVector(DAG, DL, PredVecVT);
29779+
SDValue RevOp = DAG.getNode(ISD::BITCAST, DL, RevVT, Vec);
29780+
auto Rev = DAG.getNode(Opcode, DL, RevVT, Pg, RevOp, DAG.getUNDEF(RevVT));
2978129781
auto Cast = DAG.getNode(ISD::BITCAST, DL, ContainerVT, Rev);
2978229782
return convertFromScalableVector(DAG, VT, Cast);
2978329783
};
@@ -29794,13 +29794,13 @@ SDValue AArch64TargetLowering::LowerFixedLengthVECTOR_SHUFFLEToSVE(
2979429794
RevOp = AArch64ISD::REVW_MERGE_PASSTHRU;
2979529795
EVT NewVT =
2979629796
getPackedSVEVectorVT(EVT::getIntegerVT(*DAG.getContext(), LaneSize));
29797-
return lowerToRevMergePassthru(RevOp, Op1, NewVT);
29797+
return lowerToRevMergePassthru(RevOp, Op1, NewVT, NewVT);
2979829798
}
2979929799
}
2980029800

2980129801
if (Subtarget->hasSVE2p1() && EltSize == 64 &&
2980229802
isREVMask(ShuffleMask, EltSize, VT.getVectorNumElements(), 128)) {
29803-
return lowerToRevMergePassthru(AArch64ISD::REVD_MERGE_PASSTHRU, Op1,
29803+
return lowerToRevMergePassthru(AArch64ISD::REVD_MERGE_PASSTHRU, Op1, VT,
2980429804
ContainerVT);
2980529805
}
2980629806

llvm/test/CodeGen/AArch64/sve-fixed-length-permute-rev.ll

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -213,9 +213,8 @@ define void @test_revdv4i64_sve2p1(ptr %a) #2 {
213213
; CHECK-LABEL: test_revdv4i64_sve2p1:
214214
; CHECK: // %bb.0:
215215
; CHECK-NEXT: ptrue p0.d, vl4
216-
; CHECK-NEXT: ptrue p1.d
217216
; CHECK-NEXT: ld1d { z0.d }, p0/z, [x0]
218-
; CHECK-NEXT: revd z0.q, p1/m, z0.q
217+
; CHECK-NEXT: revd z0.q, p0/m, z0.q
219218
; CHECK-NEXT: st1d { z0.d }, p0, [x0]
220219
; CHECK-NEXT: ret
221220
%tmp1 = load <4 x i64>, ptr %a
@@ -228,9 +227,8 @@ define void @test_revdv4f64_sve2p1(ptr %a) #2 {
228227
; CHECK-LABEL: test_revdv4f64_sve2p1:
229228
; CHECK: // %bb.0:
230229
; CHECK-NEXT: ptrue p0.d, vl4
231-
; CHECK-NEXT: ptrue p1.d
232230
; CHECK-NEXT: ld1d { z0.d }, p0/z, [x0]
233-
; CHECK-NEXT: revd z0.q, p1/m, z0.q
231+
; CHECK-NEXT: revd z0.q, p0/m, z0.q
234232
; CHECK-NEXT: st1d { z0.d }, p0, [x0]
235233
; CHECK-NEXT: ret
236234
%tmp1 = load <4 x double>, ptr %a

llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-permute-rev.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -677,7 +677,7 @@ define void @test_revdv4i64_sve2p1(ptr %a) #1 {
677677
; CHECK-LABEL: test_revdv4i64_sve2p1:
678678
; CHECK: // %bb.0:
679679
; CHECK-NEXT: ldp q0, q1, [x0]
680-
; CHECK-NEXT: ptrue p0.d
680+
; CHECK-NEXT: ptrue p0.d, vl2
681681
; CHECK-NEXT: revd z0.q, p0/m, z0.q
682682
; CHECK-NEXT: revd z1.q, p0/m, z1.q
683683
; CHECK-NEXT: stp q0, q1, [x0]
@@ -686,7 +686,7 @@ define void @test_revdv4i64_sve2p1(ptr %a) #1 {
686686
; NONEON-NOSVE-LABEL: test_revdv4i64_sve2p1:
687687
; NONEON-NOSVE: // %bb.0:
688688
; NONEON-NOSVE-NEXT: ldp q0, q1, [x0]
689-
; NONEON-NOSVE-NEXT: ptrue p0.d
689+
; NONEON-NOSVE-NEXT: ptrue p0.d, vl2
690690
; NONEON-NOSVE-NEXT: revd z0.q, p0/m, z0.q
691691
; NONEON-NOSVE-NEXT: revd z1.q, p0/m, z1.q
692692
; NONEON-NOSVE-NEXT: stp q0, q1, [x0]
@@ -701,7 +701,7 @@ define void @test_revdv4f64_sve2p1(ptr %a) #1 {
701701
; CHECK-LABEL: test_revdv4f64_sve2p1:
702702
; CHECK: // %bb.0:
703703
; CHECK-NEXT: ldp q0, q1, [x0]
704-
; CHECK-NEXT: ptrue p0.d
704+
; CHECK-NEXT: ptrue p0.d, vl2
705705
; CHECK-NEXT: revd z0.q, p0/m, z0.q
706706
; CHECK-NEXT: revd z1.q, p0/m, z1.q
707707
; CHECK-NEXT: stp q0, q1, [x0]
@@ -710,7 +710,7 @@ define void @test_revdv4f64_sve2p1(ptr %a) #1 {
710710
; NONEON-NOSVE-LABEL: test_revdv4f64_sve2p1:
711711
; NONEON-NOSVE: // %bb.0:
712712
; NONEON-NOSVE-NEXT: ldp q0, q1, [x0]
713-
; NONEON-NOSVE-NEXT: ptrue p0.d
713+
; NONEON-NOSVE-NEXT: ptrue p0.d, vl2
714714
; NONEON-NOSVE-NEXT: revd z0.q, p0/m, z0.q
715715
; NONEON-NOSVE-NEXT: revd z1.q, p0/m, z1.q
716716
; NONEON-NOSVE-NEXT: stp q0, q1, [x0]

0 commit comments

Comments
 (0)