Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / regbankselect-amdgcn.div.fmas.mir
blob031c5a10161d48dbff5dd06da270b169eec54b21
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=amdgpu-regbankselect -verify-machineinstrs -regbankselect-fast -o - %s  | FileCheck %s
3 # RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=amdgpu-regbankselect -verify-machineinstrs -regbankselect-greedy -o - %s | FileCheck %s
5 ---
6 name: div_fmas_sss_scc
7 legalized: true
9 body: |
10   bb.0:
11     liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3
12     ; CHECK-LABEL: name: div_fmas_sss_scc
13     ; CHECK: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3
14     ; CHECK-NEXT: {{  $}}
15     ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
16     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
17     ; CHECK-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2
18     ; CHECK-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY $sgpr3
19     ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0
20     ; CHECK-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY3]](s32), [[C]]
21     ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)
22     ; CHECK-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)
23     ; CHECK-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
24     ; CHECK-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
25     ; CHECK-NEXT: [[COPY7:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)
26     ; CHECK-NEXT: [[INT:%[0-9]+]]:vgpr(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.div.fmas), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s1)
27     %0:_(s32) = COPY $sgpr0
28     %1:_(s32) = COPY $sgpr1
29     %2:_(s32) = COPY $sgpr2
30     %3:_(s32) = COPY $sgpr3
31     %4:_(s32) = G_CONSTANT i32 0
32     %5:_(s1) = G_ICMP intpred(eq), %3, %4
33     %6:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.div.fmas), %0, %1, %2, %5
34 ...
36 ---
37 name: div_fmas_sss_vcc
38 legalized: true
40 body: |
41   bb.0:
42     liveins: $sgpr0, $sgpr1, $sgpr2, $vgpr0
43     ; CHECK-LABEL: name: div_fmas_sss_vcc
44     ; CHECK: liveins: $sgpr0, $sgpr1, $sgpr2, $vgpr0
45     ; CHECK-NEXT: {{  $}}
46     ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
47     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
48     ; CHECK-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2
49     ; CHECK-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
50     ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0
51     ; CHECK-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)
52     ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY3]](s32), [[COPY4]]
53     ; CHECK-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)
54     ; CHECK-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
55     ; CHECK-NEXT: [[COPY7:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
56     ; CHECK-NEXT: [[INT:%[0-9]+]]:vgpr(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.div.fmas), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[ICMP]](s1)
57     %0:_(s32) = COPY $sgpr0
58     %1:_(s32) = COPY $sgpr1
59     %2:_(s32) = COPY $sgpr2
60     %3:_(s32) = COPY $vgpr0
61     %4:_(s32) = G_CONSTANT i32 0
62     %5:_(s1) = G_ICMP intpred(eq), %3, %4
63     %6:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.div.fmas), %0, %1, %2, %5
64 ...
66 ---
67 name: div_fmas_vss_vcc
68 legalized: true
70 body: |
71   bb.0:
72     liveins: $vgpr0, $vgpr1, $sgpr0, $sgpr1
73     ; CHECK-LABEL: name: div_fmas_vss_vcc
74     ; CHECK: liveins: $vgpr0, $vgpr1, $sgpr0, $sgpr1
75     ; CHECK-NEXT: {{  $}}
76     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
77     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
78     ; CHECK-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1
79     ; CHECK-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
80     ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0
81     ; CHECK-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)
82     ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY3]](s32), [[COPY4]]
83     ; CHECK-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)
84     ; CHECK-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)
85     ; CHECK-NEXT: [[INT:%[0-9]+]]:vgpr(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.div.fmas), [[COPY]](s32), [[COPY5]](s32), [[COPY6]](s32), [[ICMP]](s1)
86     %0:_(s32) = COPY $vgpr0
87     %1:_(s32) = COPY $sgpr0
88     %2:_(s32) = COPY $sgpr1
89     %3:_(s32) = COPY $vgpr1
90     %4:_(s32) = G_CONSTANT i32 0
91     %5:_(s1) = G_ICMP intpred(eq), %3, %4
92     %6:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.div.fmas), %0, %1, %2, %5
93 ...
95 ---
96 name: div_fmas_vvv_vcc
97 legalized: true
99 body: |
100   bb.0:
101     liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
102     ; CHECK-LABEL: name: div_fmas_vvv_vcc
103     ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
104     ; CHECK-NEXT: {{  $}}
105     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
106     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1
107     ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr2
108     ; CHECK-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY $vgpr3
109     ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0
110     ; CHECK-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)
111     ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY3]](s32), [[COPY4]]
112     ; CHECK-NEXT: [[INT:%[0-9]+]]:vgpr(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.div.fmas), [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[ICMP]](s1)
113     %0:_(s32) = COPY $vgpr0
114     %1:_(s32) = COPY $vgpr1
115     %2:_(s32) = COPY $vgpr2
116     %3:_(s32) = COPY $vgpr3
117     %4:_(s32) = G_CONSTANT i32 0
118     %5:_(s1) = G_ICMP intpred(eq), %3, %4
119     %6:_(s32) = G_INTRINSIC intrinsic(@llvm.amdgcn.div.fmas), %0, %1, %2, %5