[llvm-objdump] - Remove one overload of reportError. NFCI.
[llvm-complete.git] / test / CodeGen / AMDGPU / GlobalISel / regbankselect-fma.mir
blob3f0dc2237dca154d3f53e2d89afb06b81ea18f12
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=fiji -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-fast | FileCheck %s
3 # RUN: llc -march=amdgcn -mcpu=fiji -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck %s
5 ---
6 name: fma_sss
7 legalized: true
9 body: |
10   bb.0:
11     liveins: $sgpr0, $sgpr1, $sgpr2
12     ; CHECK-LABEL: name: fma_sss
13     ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
14     ; CHECK: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
15     ; CHECK: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2
16     ; CHECK: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
17     ; CHECK: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
18     ; CHECK: [[FMA:%[0-9]+]]:vgpr(s32) = G_FMA [[COPY]], [[COPY3]], [[COPY4]]
19     %0:_(s32) = COPY $sgpr0
20     %1:_(s32) = COPY $sgpr1
21     %2:_(s32) = COPY $sgpr2
22     %3:_(s32) = G_FMA %0, %1, %2
23 ...
24 ---
25 name: fma_vss
26 legalized: true
28 body: |
29   bb.0:
30     liveins: $vgpr0, $sgpr0, $sgpr1
31     ; CHECK-LABEL: name: fma_vss
32     ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
33     ; CHECK: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
34     ; CHECK: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
35     ; CHECK: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
36     ; CHECK: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
37     ; CHECK: [[FMA:%[0-9]+]]:vgpr(s32) = G_FMA [[COPY]], [[COPY3]], [[COPY4]]
38     %0:_(s32) = COPY $vgpr0
39     %1:_(s32) = COPY $sgpr0
40     %2:_(s32) = COPY $sgpr1
41     %3:_(s32) = G_FMA %0, %1, %2
42 ...
43 ---
44 name: fma_svs
45 legalized: true
47 body: |
48   bb.0:
49     liveins: $sgpr0, $vgpr0, $sgpr1
50     ; CHECK-LABEL: name: fma_svs
51     ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
52     ; CHECK: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
53     ; CHECK: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
54     ; CHECK: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
55     ; CHECK: [[FMA:%[0-9]+]]:vgpr(s32) = G_FMA [[COPY]], [[COPY1]], [[COPY3]]
56     %0:_(s32) = COPY $sgpr0
57     %1:_(s32) = COPY $vgpr0
58     %2:_(s32) = COPY $sgpr1
59     %3:_(s32) = G_FMA %0, %1, %2
60 ...
61 ---
62 name: fma_ssv
63 legalized: true
65 body: |
66   bb.0:
67     liveins: $sgpr0, $sgpr1, $vgpr0
68     ; CHECK-LABEL: name: fma_ssv
69     ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
70     ; CHECK: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
71     ; CHECK: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
72     ; CHECK: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
73     ; CHECK: [[FMA:%[0-9]+]]:vgpr(s32) = G_FMA [[COPY]], [[COPY3]], [[COPY2]]
74     %0:_(s32) = COPY $sgpr0
75     %1:_(s32) = COPY $sgpr1
76     %2:_(s32) = COPY $vgpr0
77     %3:_(s32) = G_FMA %0, %1, %2
78 ...
79 ---
80 name: fma_vvs
81 legalized: true
83 body: |
84   bb.0:
85     liveins: $vgpr0, $vgpr1, $sgpr0
86     ; CHECK-LABEL: name: fma_vvs
87     ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
88     ; CHECK: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
89     ; CHECK: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
90     ; CHECK: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
91     ; CHECK: [[FMA:%[0-9]+]]:vgpr(s32) = G_FMA [[COPY]], [[COPY1]], [[COPY3]]
92     %0:_(s32) = COPY $vgpr0
93     %1:_(s32) = COPY $vgpr1
94     %2:_(s32) = COPY $sgpr0
95     %3:_(s32) = G_FMA %0, %1, %2
96 ...
97 ---
98 name: fma_vsv
99 legalized: true
101 body: |
102   bb.0:
103     liveins: $vgpr0, $sgpr0, $vgpr1
104     ; CHECK-LABEL: name: fma_vsv
105     ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
106     ; CHECK: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
107     ; CHECK: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
108     ; CHECK: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
109     ; CHECK: [[FMA:%[0-9]+]]:vgpr(s32) = G_FMA [[COPY]], [[COPY3]], [[COPY2]]
110     %0:_(s32) = COPY $vgpr0
111     %1:_(s32) = COPY $sgpr1
112     %2:_(s32) = COPY $vgpr1
113     %3:_(s32) = G_FMA %0, %1, %2
116 name: fma_svv
117 legalized: true
119 body: |
120   bb.0:
121     liveins: $sgpr0, $vgpr0, $vgpr1
122     ; CHECK-LABEL: name: fma_svv
123     ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
124     ; CHECK: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
125     ; CHECK: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
126     ; CHECK: [[FMA:%[0-9]+]]:vgpr(s32) = G_FMA [[COPY]], [[COPY1]], [[COPY2]]
127     %0:_(s32) = COPY $sgpr0
128     %1:_(s32) = COPY $vgpr0
129     %2:_(s32) = COPY $vgpr1
130     %3:_(s32) = G_FMA %0, %1, %2
133 name: fma_vvv
134 legalized: true
136 body: |
137   bb.0:
138     liveins: $vgpr0, $vgpr1, $vgpr2
139     ; CHECK-LABEL: name: fma_vvv
140     ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
141     ; CHECK: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
142     ; CHECK: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr2
143     ; CHECK: [[FMA:%[0-9]+]]:vgpr(s32) = G_FMA [[COPY]], [[COPY1]], [[COPY2]]
144     %0:_(s32) = COPY $vgpr0
145     %1:_(s32) = COPY $vgpr1
146     %2:_(s32) = COPY $vgpr2
147     %3:_(s32) = G_FMA %0, %1, %2