[PowerPC] Recommit r314244 with refactoring and off by default
[llvm-core.git] / test / CodeGen / AMDGPU / shrink-carry.mir
blobcf000ffa7747b16f5ae423d35e4099a16b67eaa4
1 # RUN: llc -march=amdgcn -verify-machineinstrs -start-before si-shrink-instructions -stop-before si-insert-skips -o - %s | FileCheck -check-prefix=GCN %s
3 # GCN-LABEL: name: subbrev{{$}}
4 # GCN:       V_SUBBREV_U32_e64 0, undef %vgpr0, killed %vcc, implicit %exec
6 ---
7 name:            subbrev
8 tracksRegLiveness: true
9 registers:
10   - { id: 0, class: vgpr_32 }
11   - { id: 1, class: vgpr_32 }
12   - { id: 2, class: vgpr_32 }
13   - { id: 3, class: sreg_64_xexec }
14   - { id: 4, class: vgpr_32 }
15   - { id: 5, class: sreg_64_xexec }
16 body:             |
17   bb.0:
19     %0 = IMPLICIT_DEF
20     %1 = IMPLICIT_DEF
21     %2 = IMPLICIT_DEF
22     %3 = V_CMP_GT_U32_e64 %0, %1, implicit %exec
23     %4, %5 = V_SUBBREV_U32_e64 0, %0, %3, implicit %exec
25 ...
27 # GCN-LABEL: name: subb{{$}}
28 # GCN:       V_SUBB_U32_e64 undef %vgpr0, 0, killed %vcc, implicit %exec
30 ---
31 name:            subb
32 tracksRegLiveness: true
33 registers:
34   - { id: 0, class: vgpr_32 }
35   - { id: 1, class: vgpr_32 }
36   - { id: 2, class: vgpr_32 }
37   - { id: 3, class: sreg_64_xexec }
38   - { id: 4, class: vgpr_32 }
39   - { id: 5, class: sreg_64_xexec }
40 body:             |
41   bb.0:
43     %0 = IMPLICIT_DEF
44     %1 = IMPLICIT_DEF
45     %2 = IMPLICIT_DEF
46     %3 = V_CMP_GT_U32_e64 %0, %1, implicit %exec
47     %4, %5 = V_SUBB_U32_e64 %0, 0, %3, implicit %exec
49 ...
51 # GCN-LABEL: name: addc{{$}}
52 # GCN:       V_ADDC_U32_e32 0, undef %vgpr0, implicit-def %vcc, implicit killed %vcc, implicit %exec
54 ---
55 name:            addc
56 tracksRegLiveness: true
57 registers:
58   - { id: 0, class: vgpr_32 }
59   - { id: 1, class: vgpr_32 }
60   - { id: 2, class: vgpr_32 }
61   - { id: 3, class: sreg_64_xexec }
62   - { id: 4, class: vgpr_32 }
63   - { id: 5, class: sreg_64_xexec }
64 body:             |
65   bb.0:
67     %0 = IMPLICIT_DEF
68     %1 = IMPLICIT_DEF
69     %2 = IMPLICIT_DEF
70     %3 = V_CMP_GT_U32_e64 %0, %1, implicit %exec
71     %4, %5 = V_ADDC_U32_e64 0, %0, %3, implicit %exec
73 ...
75 # GCN-LABEL: name: addc2{{$}}
76 # GCN:       V_ADDC_U32_e32 0, undef %vgpr0, implicit-def %vcc, implicit killed %vcc, implicit %exec
78 ---
79 name:            addc2
80 tracksRegLiveness: true
81 registers:
82   - { id: 0, class: vgpr_32 }
83   - { id: 1, class: vgpr_32 }
84   - { id: 2, class: vgpr_32 }
85   - { id: 3, class: sreg_64_xexec }
86   - { id: 4, class: vgpr_32 }
87   - { id: 5, class: sreg_64_xexec }
88 body:             |
89   bb.0:
91     %0 = IMPLICIT_DEF
92     %1 = IMPLICIT_DEF
93     %2 = IMPLICIT_DEF
94     %3 = V_CMP_GT_U32_e64 %0, %1, implicit %exec
95     %4, %5 = V_ADDC_U32_e64 %0, 0, %3, implicit %exec
97 ...