121
|
1 # RUN: llc -march=amdgcn -verify-machineinstrs -start-before si-shrink-instructions -stop-before si-insert-skips -o - %s | FileCheck -check-prefix=GCN %s
|
|
2
|
|
3 # GCN-LABEL: name: subbrev{{$}}
|
|
4 # GCN: V_SUBBREV_U32_e64 0, undef %vgpr0, killed %vcc, implicit %exec
|
|
5
|
|
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:
|
|
18
|
|
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
|
|
24
|
|
25 ...
|
|
26
|
|
27 # GCN-LABEL: name: subb{{$}}
|
|
28 # GCN: V_SUBB_U32_e64 undef %vgpr0, 0, killed %vcc, implicit %exec
|
|
29
|
|
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:
|
|
42
|
|
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
|
|
48
|
|
49 ...
|
|
50
|
|
51 # GCN-LABEL: name: addc{{$}}
|
|
52 # GCN: V_ADDC_U32_e32 0, undef %vgpr0, implicit-def %vcc, implicit killed %vcc, implicit %exec
|
|
53
|
|
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:
|
|
66
|
|
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
|
|
72
|
|
73 ...
|
|
74
|
|
75 # GCN-LABEL: name: addc2{{$}}
|
|
76 # GCN: V_ADDC_U32_e32 0, undef %vgpr0, implicit-def %vcc, implicit killed %vcc, implicit %exec
|
|
77
|
|
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:
|
|
90
|
|
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
|
|
96
|
|
97 ...
|