[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / combine-fabs.mir
bloba543e7cd4c7e4f64db1218402803c578f2fed34a
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs -mtriple aarch64-unknown-unknown %s -o - | FileCheck %s
3 # RUN: llc -debugify-and-strip-all-safe -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs -mtriple aarch64-unknown-unknown %s -o - | FileCheck %s
5 ---
6 name:            test_combine_fabs_fabs
7 body:             |
8   bb.1:
9   liveins: $w0
10     ; CHECK-LABEL: name: test_combine_fabs_fabs
11     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
12     ; CHECK: [[FABS:%[0-9]+]]:_(s32) = G_FABS [[COPY]]
13     ; CHECK: $w0 = COPY [[FABS]](s32)
14     %0:_(s32) = COPY $w0
15     %1:_(s32) = G_FABS %0(s32)
16     %2:_(s32) = G_FABS %1(s32)
17     $w0 = COPY %2(s32)
18 ...
19 ---
20 name:            test_combine_fabs_fabs_vec
21 body:             |
22   bb.1:
23   liveins: $x0
24     ; CHECK-LABEL: name: test_combine_fabs_fabs_vec
25     ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $x0
26     ; CHECK: [[FABS:%[0-9]+]]:_(<2 x s32>) = G_FABS [[COPY]]
27     ; CHECK: $x0 = COPY [[FABS]](<2 x s32>)
28     %0:_(<2 x s32>) = COPY $x0
29     %1:_(<2 x s32>) = G_FABS %0(<2 x s32>)
30     %2:_(<2 x s32>) = G_FABS %1(<2 x s32>)
31     $x0 = COPY %2(<2 x s32>)
32 ...
33 ---
34 name:            test_combine_half_fabs_neg_constant
35 body:             |
36   bb.1:
37     ; CHECK-LABEL: name: test_combine_half_fabs_neg_constant
38     ; CHECK: [[C:%[0-9]+]]:_(s16) = G_FCONSTANT half 0xH4580
39     ; CHECK: $h0 = COPY [[C]](s16)
40     %0:_(s16) = G_FCONSTANT half 0xHC580
41     %1:_(s16) = G_FABS %0
42     $h0 = COPY %1(s16)
43 ...
44 ---
45 name:            test_combine_half_fabs_pos_constant
46 body:             |
47   bb.1:
48     ; CHECK-LABEL: name: test_combine_half_fabs_pos_constant
49     ; CHECK: [[C:%[0-9]+]]:_(s16) = G_FCONSTANT half 0xH4580
50     ; CHECK: $h0 = COPY [[C]](s16)
51     %0:_(s16) = G_FCONSTANT half 0xH4580
52     %1:_(s16) = G_FABS %0
53     $h0 = COPY %1(s16)
54 ...
55 ---
56 name:            test_combine_float_fabs_neg_constant
57 body:             |
58   bb.1:
59     liveins: $w0
60     ; CHECK-LABEL: name: test_combine_float_fabs_neg_constant
61     ; CHECK: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float 5.500000e+00
62     ; CHECK: $w0 = COPY [[C]](s32)
63     %0:_(s32) = G_FCONSTANT float -5.500000e+00
64     %1:_(s32) = G_FABS %0
65     $w0 = COPY %1(s32)
66 ...
67 ---
68 name:            test_combine_float_fabs_pos_constant
69 body:             |
70   bb.1:
71     liveins: $w0
72     ; CHECK-LABEL: name: test_combine_float_fabs_pos_constant
73     ; CHECK: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float 5.500000e+00
74     ; CHECK: $w0 = COPY [[C]](s32)
75     %0:_(s32) = G_FCONSTANT float -5.500000e+00
76     %1:_(s32) = G_FABS %0
77     $w0 = COPY %1(s32)
78 ...
79 ---
80 name:            test_combine_double_fabs_neg_constant
81 body:             |
82   bb.1:
83     liveins: $x0
84     ; CHECK-LABEL: name: test_combine_double_fabs_neg_constant
85     ; CHECK: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 4.200000e+00
86     ; CHECK: $x0 = COPY [[C]](s64)
87     %0:_(s64) = G_FCONSTANT double -4.200000e+00
88     %1:_(s64) = G_FABS %0
89     $x0 = COPY %1(s64)
90 ...
91 ---
92 name:            test_combine_double_fabs_pos_constant
93 body:             |
94   bb.1:
95     liveins: $x0
96     ; CHECK-LABEL: name: test_combine_double_fabs_pos_constant
97     ; CHECK: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 4.200000e+00
98     ; CHECK: $x0 = COPY [[C]](s64)
99     %0:_(s64) = G_FCONSTANT double 4.200000e+00
100     %1:_(s64) = G_FABS %0
101     $x0 = COPY %0(s64)