150
|
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_e32 0, undef $vgpr0, implicit-def $vcc, implicit 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, 0, implicit $exec
|
|
24 GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %4, 0, 0, 0, 0, implicit $exec
|
|
25
|
|
26 ...
|
|
27
|
|
28 # GCN-LABEL: name: subb{{$}}
|
|
29 # GCN: V_SUBBREV_U32_e32 0, undef $vgpr0, implicit-def $vcc, implicit killed $vcc, implicit $exec
|
|
30
|
|
31 ---
|
|
32 name: subb
|
|
33 tracksRegLiveness: true
|
|
34 registers:
|
|
35 - { id: 0, class: vgpr_32 }
|
|
36 - { id: 1, class: vgpr_32 }
|
|
37 - { id: 2, class: vgpr_32 }
|
|
38 - { id: 3, class: sreg_64_xexec }
|
|
39 - { id: 4, class: vgpr_32 }
|
|
40 - { id: 5, class: sreg_64_xexec }
|
|
41 body: |
|
|
42 bb.0:
|
|
43
|
|
44 %0 = IMPLICIT_DEF
|
|
45 %1 = IMPLICIT_DEF
|
|
46 %2 = IMPLICIT_DEF
|
|
47 %3 = V_CMP_GT_U32_e64 %0, %1, implicit $exec
|
|
48 %4, %5 = V_SUBB_U32_e64 %0, 0, %3, 0, implicit $exec
|
|
49 GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %4, 0, 0, 0, 0, implicit $exec
|
|
50
|
|
51 ...
|
|
52
|
|
53 # GCN-LABEL: name: addc{{$}}
|
|
54 # GCN: V_ADDC_U32_e32 0, undef $vgpr0, implicit-def $vcc, implicit killed $vcc, implicit $exec
|
|
55
|
|
56 ---
|
|
57 name: addc
|
|
58 tracksRegLiveness: true
|
|
59 registers:
|
|
60 - { id: 0, class: vgpr_32 }
|
|
61 - { id: 1, class: vgpr_32 }
|
|
62 - { id: 2, class: vgpr_32 }
|
|
63 - { id: 3, class: sreg_64_xexec }
|
|
64 - { id: 4, class: vgpr_32 }
|
|
65 - { id: 5, class: sreg_64_xexec }
|
|
66 body: |
|
|
67 bb.0:
|
|
68
|
|
69 %0 = IMPLICIT_DEF
|
|
70 %1 = IMPLICIT_DEF
|
|
71 %2 = IMPLICIT_DEF
|
|
72 %3 = V_CMP_GT_U32_e64 %0, %1, implicit $exec
|
|
73 %4, %5 = V_ADDC_U32_e64 0, %0, %3, 0, implicit $exec
|
|
74 GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %4, 0, 0, 0, 0, implicit $exec
|
|
75
|
|
76 ...
|
|
77
|
|
78 # GCN-LABEL: name: addc2{{$}}
|
|
79 # GCN: V_ADDC_U32_e32 0, undef $vgpr0, implicit-def $vcc, implicit killed $vcc, implicit $exec
|
|
80
|
|
81 ---
|
|
82 name: addc2
|
|
83 tracksRegLiveness: true
|
|
84 registers:
|
|
85 - { id: 0, class: vgpr_32 }
|
|
86 - { id: 1, class: vgpr_32 }
|
|
87 - { id: 2, class: vgpr_32 }
|
|
88 - { id: 3, class: sreg_64_xexec }
|
|
89 - { id: 4, class: vgpr_32 }
|
|
90 - { id: 5, class: sreg_64_xexec }
|
|
91 body: |
|
|
92 bb.0:
|
|
93
|
|
94 %0 = IMPLICIT_DEF
|
|
95 %1 = IMPLICIT_DEF
|
|
96 %2 = IMPLICIT_DEF
|
|
97 %3 = V_CMP_GT_U32_e64 %0, %1, implicit $exec
|
|
98 %4, %5 = V_ADDC_U32_e64 %0, 0, %3, 0, implicit $exec
|
|
99 GLOBAL_STORE_DWORD undef $vgpr0_vgpr1, %4, 0, 0, 0, 0, implicit $exec
|
|
100
|
|
101 ...
|