1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn -verify-machineinstrs -run-pass=si-optimize-exec-masking-pre-ra %s -o - | FileCheck -check-prefix=GXN %s
4 # FIXME: This is a miscompile, and the s_or_b64s need to be preserved.
7 name: invalid_end_cf_fold_0
8 tracksRegLiveness: true
10 - { reg: '$vgpr0', virtual-reg: '%0' }
11 - { reg: '$sgpr0_sgpr1', virtual-reg: '%1' }
15 ; GXN-LABEL: name: invalid_end_cf_fold_0
17 ; GXN-NEXT: successors: %bb.1(0x80000000)
18 ; GXN-NEXT: liveins: $vgpr0, $sgpr0_sgpr1
20 ; GXN-NEXT: [[COPY:%[0-9]+]]:sgpr_64 = COPY $sgpr0_sgpr1
21 ; GXN-NEXT: [[COPY1:%[0-9]+]]:sgpr_64 = COPY $exec
22 ; GXN-NEXT: $exec = S_OR_B64 $exec, [[COPY]], implicit-def $scc
23 ; GXN-NEXT: [[COPY2:%[0-9]+]]:sgpr_64 = COPY $exec
26 ; GXN-NEXT: successors: %bb.2(0x80000000)
28 ; GXN-NEXT: $exec = S_OR_B64 $exec, [[COPY1]], implicit-def $scc
31 ; GXN-NEXT: $exec = S_OR_B64 $exec, [[COPY2]], implicit-def $scc
32 ; GXN-NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
33 ; GXN-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
34 ; GXN-NEXT: DS_WRITE_B32 [[DEF]], [[DEF1]], 0, 0, implicit $m0, implicit $exec :: (store (s32), addrspace 3)
35 ; GXN-NEXT: S_ENDPGM 0
37 liveins: $vgpr0, $sgpr0_sgpr1
39 %0:sgpr_64 = COPY $sgpr0_sgpr1
40 %1:sgpr_64 = COPY $exec
41 $exec = S_OR_B64 $exec, %0, implicit-def $scc
42 %2:sgpr_64 = COPY $exec
45 $exec = S_OR_B64 $exec, %1, implicit-def $scc
48 $exec = S_OR_B64 $exec, %2, implicit-def $scc
50 %5:vgpr_32 = IMPLICIT_DEF
51 %6:vgpr_32 = IMPLICIT_DEF
52 DS_WRITE_B32 %5, %6, 0, 0, implicit $m0, implicit $exec :: (store (s32), addrspace 3)