[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / AMDGPU / si-fix-sgpr-copies.mir
blob03e81a0431c54d765cef5cf7df04772a75c564d5
1 # RUN: llc -march=amdgcn -run-pass si-fix-sgpr-copies %s -o - | FileCheck %s -check-prefixes=GCN
3 ---
5 name: phi_visit_order
6 tracksRegLiveness: true
7 registers:
8   - { id: 0, class: sreg_32_xm0 }
9   - { id: 1, class: sreg_64 }
10   - { id: 2, class: sreg_32_xm0 }
11   - { id: 7, class: vgpr_32 }
12   - { id: 8, class: sreg_32_xm0 }
13   - { id: 9, class: vgpr_32 }
14   - { id: 10, class: sreg_64 }
15   - { id: 11, class: sreg_32_xm0 }
17 body: |
18   ; GCN-LABEL: name: phi_visit_order
19   ; GCN: S_ADD_I32
20   bb.0:
21     liveins: $vgpr0
22     %7 = COPY $vgpr0
23     %8 = S_MOV_B32 0
25   bb.1:
26     %0 = PHI %8, %bb.0, %0, %bb.1, %2, %bb.2
27     %9 = V_MOV_B32_e32 9, implicit $exec
28     %10 = V_CMP_EQ_U32_e64 %7, %9, implicit $exec
29     %1 = SI_IF %10, %bb.2, implicit-def $exec, implicit-def $scc, implicit $exec
30     S_BRANCH %bb.1
32   bb.2:
33     SI_END_CF %1, implicit-def $exec, implicit-def $scc, implicit $exec
34     %11 = S_MOV_B32 1
35     %2 = S_ADD_I32 %0, %11, implicit-def $scc
36     S_BRANCH %bb.1
38 ...
40 ---
42 # GCN-LABEL: name: dead_illegal_virtreg_copy
43 # GCN: %0:vgpr_32 = COPY $vgpr0
44 # GCN: %1:sreg_32_xm0 = IMPLICIT_DEF
45 # GCN: S_ENDPGM 0, implicit %0
47 name: dead_illegal_virtreg_copy
48 tracksRegLiveness: true
50 body: |
51   bb.0:
52     liveins: $vgpr0
53     %0:vgpr_32 = COPY $vgpr0
54     %1:sreg_32_xm0 = COPY %0
55     S_ENDPGM 0, implicit %1
56 ...
58 ---
60 # GCN-LABEL: name: dead_illegal_physreg_copy
61 # GCN %2:vgpr_32 = COPY $vgpr0
62 # GCN: %1:sreg_32_xm0 = IMPLICIT_DEF
63 # GCN: S_ENDPGM 0, implicit %2
65 name: dead_illegal_physreg_copy
66 tracksRegLiveness: true
68 body: |
69   bb.0:
70     liveins: $vgpr0
71     %0:sreg_32_xm0 = COPY $vgpr0
72     %1:sreg_32_xm0 = COPY %0
73     S_ENDPGM 0, implicit %1
74 ...