You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In llvm#90049 we removed the side effect flag on the vleNff pseudos with the reasoning that we modelled the effect of setting vl as an output operand.
This extends this further by removing the implicit def on vl, inserting it back in RISCVInsertVSETVLI when we also emit the PseudoReadVL.
The motiviation for this is to handle vleff in more places in RISCVVectorPeephole, to make migrating the last vmerge peephole over from RISCVISelDAGToDAG.
Some of these tests claim that the vleff shouldn't be deleted when none of its operands are used, but these are from the initial commit in 3b5430e. I'm not sure if these still hold today?
This also moves the fault-only-first predicate to RISCVInstrPredicates.td since we can't rely on the implicit vl operand anymore.
tailcall {target("riscv.vector.tuple", <vscale x 32 x i8>, 2), i32} @llvm.riscv.vlseg2ff.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr%base, i32%vl, i324)
@@ -77,8 +75,6 @@ entry:
77
75
definevoid@test_vlseg2ff_mask_dead_all(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr%base, i32%vl, <vscale x 16 x i1> %mask) {
78
76
; CHECK-LABEL: test_vlseg2ff_mask_dead_all:
79
77
; CHECK: # %bb.0: # %entry
80
-
; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, mu
81
-
; CHECK-NEXT: vlseg2e16ff.v v8, (a0), v0.t
82
78
; CHECK-NEXT: ret
83
79
entry:
84
80
tailcall {target("riscv.vector.tuple", <vscale x 32 x i8>, 2), i32} @llvm.riscv.vlseg2ff.mask.triscv.vector.tuple_nxv32i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr%base, <vscale x 16 x i1> %mask, i32%vl, i321, i324)
tailcall {target("riscv.vector.tuple", <vscale x 32 x i8>, 2), i64} @llvm.riscv.vlseg2ff.triscv.vector.tuple_nxv32i8_2t(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) undef, ptr%base, i64%vl, i644)
@@ -77,8 +75,6 @@ entry:
77
75
definevoid@test_vlseg2ff_mask_dead_all(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr%base, i64%vl, <vscale x 16 x i1> %mask) {
78
76
; CHECK-LABEL: test_vlseg2ff_mask_dead_all:
79
77
; CHECK: # %bb.0: # %entry
80
-
; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, mu
81
-
; CHECK-NEXT: vlseg2e16ff.v v8, (a0), v0.t
82
78
; CHECK-NEXT: ret
83
79
entry:
84
80
tailcall {target("riscv.vector.tuple", <vscale x 32 x i8>, 2), i64} @llvm.riscv.vlseg2ff.mask.triscv.vector.tuple_nxv32i8_2t.nxv16i1(target("riscv.vector.tuple", <vscale x 32 x i8>, 2) %val, ptr%base, <vscale x 16 x i1> %mask, i64%vl, i641, i644)
0 commit comments