[AMDGPU] Make v8i16/v8f16 legal
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / combine-redundant-neg.mir
blob3eeaf86c2b9712bb5e563ad81e6786546ab80297
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -run-pass=amdgpu-prelegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s
4 ---
5 name:            test_add_rhs
6 body:             |
7   bb.0:
8     liveins: $vgpr0, $vgpr1
10     ; CHECK-LABEL: name: test_add_rhs
11     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
12     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1
13     ; CHECK-NEXT: [[FSUB:%[0-9]+]]:_(s32) = G_FSUB [[COPY]], [[COPY1]]
14     ; CHECK-NEXT: $vgpr0 = COPY [[FSUB]](s32)
15     %0:_(s32) = COPY $vgpr0
16     %1:_(s32) = COPY $vgpr1
17     %2:_(s32) = G_FNEG %1
18     %3:_(s32) = G_FADD %0, %2
19     $vgpr0 = COPY %3(s32)
21 ...
22 ---
23 name:            test_add_lhs
24 body:             |
25   bb.0:
26     liveins: $vgpr0, $vgpr1
28     ; CHECK-LABEL: name: test_add_lhs
29     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
30     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1
31     ; CHECK-NEXT: [[FSUB:%[0-9]+]]:_(s32) = G_FSUB [[COPY1]], [[COPY]]
32     ; CHECK-NEXT: $vgpr0 = COPY [[FSUB]](s32)
33     %0:_(s32) = COPY $vgpr0
34     %1:_(s32) = COPY $vgpr1
35     %2:_(s32) = G_FNEG %0
36     %3:_(s32) = G_FADD %2, %1
37     $vgpr0 = COPY %3(s32)
39 ...
40 ---
41 name:            test_sub
42 body:             |
43   bb.0:
44     liveins: $vgpr0, $vgpr1
46     ; CHECK-LABEL: name: test_sub
47     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
48     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1
49     ; CHECK-NEXT: [[FADD:%[0-9]+]]:_(s32) = G_FADD [[COPY]], [[COPY1]]
50     ; CHECK-NEXT: $vgpr0 = COPY [[FADD]](s32)
51     %0:_(s32) = COPY $vgpr0
52     %1:_(s32) = COPY $vgpr1
53     %2:_(s32) = G_FNEG %1
54     %3:_(s32) = G_FSUB %0, %2
55     $vgpr0 = COPY %3(s32)
57 ...
58 ---
59 name:            test_mul
60 body:             |
61   bb.0:
62     liveins: $vgpr0, $vgpr1
64     ; CHECK-LABEL: name: test_mul
65     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
66     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1
67     ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s32) = G_FMUL [[COPY]], [[COPY1]]
68     ; CHECK-NEXT: $vgpr0 = COPY [[FMUL]](s32)
69     %0:_(s32) = COPY $vgpr0
70     %1:_(s32) = COPY $vgpr1
71     %2:_(s32) = G_FNEG %0
72     %3:_(s32) = G_FNEG %1
73     %4:_(s32) = G_FMUL %2, %3
74     $vgpr0 = COPY %4(s32)
76 ...
77 ---
78 name:            test_div
79 body:             |
80   bb.0:
81     liveins: $vgpr0, $vgpr1
83     ; CHECK-LABEL: name: test_div
84     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
85     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1
86     ; CHECK-NEXT: [[FDIV:%[0-9]+]]:_(s32) = G_FDIV [[COPY]], [[COPY1]]
87     ; CHECK-NEXT: $vgpr0 = COPY [[FDIV]](s32)
88     %0:_(s32) = COPY $vgpr0
89     %1:_(s32) = COPY $vgpr1
90     %2:_(s32) = G_FNEG %0
91     %3:_(s32) = G_FNEG %1
92     %4:_(s32) = G_FDIV %2, %3
93     $vgpr0 = COPY %4(s32)
95 ...
96 ---
97 name:            test_fmad
98 body:             |
99   bb.0:
100     liveins: $vgpr0, $vgpr1, $vgpr2
102     ; CHECK-LABEL: name: test_fmad
103     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
104     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1
105     ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2
106     ; CHECK-NEXT: [[FMAD:%[0-9]+]]:_(s32) = G_FMAD [[COPY]], [[COPY1]], [[COPY2]]
107     ; CHECK-NEXT: $vgpr0 = COPY [[FMAD]](s32)
108     %0:_(s32) = COPY $vgpr0
109     %1:_(s32) = COPY $vgpr1
110     %2:_(s32) = COPY $vgpr2
111     %3:_(s32) = G_FNEG %0
112     %4:_(s32) = G_FNEG %1
113     %5:_(s32) = G_FMAD %3, %4, %2
114     $vgpr0 = COPY %5(s32)
118 name:            test_fma
119 body:             |
120   bb.0:
121     liveins: $vgpr0, $vgpr1, $vgpr2
123     ; CHECK-LABEL: name: test_fma
124     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
125     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1
126     ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2
127     ; CHECK-NEXT: [[FMA:%[0-9]+]]:_(s32) = G_FMA [[COPY]], [[COPY1]], [[COPY2]]
128     ; CHECK-NEXT: $vgpr0 = COPY [[FMA]](s32)
129     %0:_(s32) = COPY $vgpr0
130     %1:_(s32) = COPY $vgpr1
131     %2:_(s32) = COPY $vgpr2
132     %3:_(s32) = G_FNEG %0
133     %4:_(s32) = G_FNEG %1
134     %5:_(s32) = G_FMA %3, %4, %2
135     $vgpr0 = COPY %5(s32)