[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / select-neon-vector-fcmp.mir
blob0b0c3ed763abcb7d6c830e20312d799458ae1aff
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
4 ...
5 ---
6 name:            fcmeq
7 alignment:       4
8 legalized:       true
9 regBankSelected: true
10 body:             |
11   bb.0:
12     ; CHECK-LABEL: name: fcmeq
13     ; CHECK: %lhs:fpr128 = COPY $q0
14     ; CHECK: %rhs:fpr128 = COPY $q1
15     ; CHECK: %fcmp:fpr128 = nofpexcept FCMEQv2f64 %lhs, %rhs
16     ; CHECK: $q0 = COPY %fcmp
17     ; CHECK: RET_ReallyLR implicit $q0
18     %lhs:fpr(<2 x s64>) = COPY $q0
19     %rhs:fpr(<2 x s64>) = COPY $q1
20     %fcmp:fpr(<2 x s64>) = G_FCMEQ %lhs, %rhs(<2 x s64>)
21     $q0 = COPY %fcmp(<2 x s64>)
22     RET_ReallyLR implicit $q0
24 ...
25 ---
26 name:            fcmge
27 alignment:       4
28 legalized:       true
29 regBankSelected: true
30 body:             |
31   bb.0:
32     ; CHECK-LABEL: name: fcmge
33     ; CHECK: %lhs:fpr128 = COPY $q0
34     ; CHECK: %rhs:fpr128 = COPY $q1
35     ; CHECK: %fcmp:fpr128 = nofpexcept FCMGEv2f64 %lhs, %rhs
36     ; CHECK: $q0 = COPY %fcmp
37     ; CHECK: RET_ReallyLR implicit $q0
38     %lhs:fpr(<2 x s64>) = COPY $q0
39     %rhs:fpr(<2 x s64>) = COPY $q1
40     %fcmp:fpr(<2 x s64>) = G_FCMGE %lhs, %rhs(<2 x s64>)
41     $q0 = COPY %fcmp(<2 x s64>)
42     RET_ReallyLR implicit $q0
44 ...
45 ---
46 name:            fcmgt
47 alignment:       4
48 legalized:       true
49 regBankSelected: true
50 body:             |
51   bb.0:
52     ; CHECK-LABEL: name: fcmgt
53     ; CHECK: %lhs:fpr128 = COPY $q0
54     ; CHECK: %rhs:fpr128 = COPY $q1
55     ; CHECK: %fcmp:fpr128 = nofpexcept FCMGTv2f64 %lhs, %rhs
56     ; CHECK: $q0 = COPY %fcmp
57     ; CHECK: RET_ReallyLR implicit $q0
58     %lhs:fpr(<2 x s64>) = COPY $q0
59     %rhs:fpr(<2 x s64>) = COPY $q1
60     %fcmp:fpr(<2 x s64>) = G_FCMGT %lhs, %rhs(<2 x s64>)
61     $q0 = COPY %fcmp(<2 x s64>)
62     RET_ReallyLR implicit $q0
64 ...
65 ---
66 name:            fcmeqz
67 alignment:       4
68 legalized:       true
69 regBankSelected: true
70 body:             |
71   bb.0:
72     ; CHECK-LABEL: name: fcmeqz
73     ; CHECK: %lhs:fpr128 = COPY $q0
74     ; CHECK: %fcmp:fpr128 = nofpexcept FCMEQv2i64rz %lhs
75     ; CHECK: $q0 = COPY %fcmp
76     ; CHECK: RET_ReallyLR implicit $q0
77     %lhs:fpr(<2 x s64>) = COPY $q0
78     %zero:gpr(s64) = G_CONSTANT i64 0
79     %zero_vec:fpr(<2 x s64>) = G_BUILD_VECTOR %zero(s64), %zero(s64)
80     %fcmp:fpr(<2 x s64>) = G_FCMEQZ %lhs
81     $q0 = COPY %fcmp(<2 x s64>)
82     RET_ReallyLR implicit $q0
84 ...
85 ---
86 name:            fcmgez
87 alignment:       4
88 legalized:       true
89 regBankSelected: true
90 body:             |
91   bb.0:
92     ; CHECK-LABEL: name: fcmgez
93     ; CHECK: %lhs:fpr128 = COPY $q0
94     ; CHECK: %fcmp:fpr128 = nofpexcept FCMGEv2i64rz %lhs
95     ; CHECK: $q0 = COPY %fcmp
96     ; CHECK: RET_ReallyLR implicit $q0
97     %lhs:fpr(<2 x s64>) = COPY $q0
98     %zero:gpr(s64) = G_CONSTANT i64 0
99     %zero_vec:fpr(<2 x s64>) = G_BUILD_VECTOR %zero(s64), %zero(s64)
100     %fcmp:fpr(<2 x s64>) = G_FCMGEZ %lhs
101     $q0 = COPY %fcmp(<2 x s64>)
102     RET_ReallyLR implicit $q0
106 name:            fcmgtz
107 alignment:       4
108 legalized:       true
109 regBankSelected: true
110 body:             |
111   bb.0:
112     ; CHECK-LABEL: name: fcmgtz
113     ; CHECK: %lhs:fpr128 = COPY $q0
114     ; CHECK: %fcmp:fpr128 = nofpexcept FCMGTv2i64rz %lhs
115     ; CHECK: $q0 = COPY %fcmp
116     ; CHECK: RET_ReallyLR implicit $q0
117     %lhs:fpr(<2 x s64>) = COPY $q0
118     %zero:gpr(s64) = G_CONSTANT i64 0
119     %zero_vec:fpr(<2 x s64>) = G_BUILD_VECTOR %zero(s64), %zero(s64)
120     %fcmp:fpr(<2 x s64>) = G_FCMGTZ %lhs
121     $q0 = COPY %fcmp(<2 x s64>)
122     RET_ReallyLR implicit $q0
126 name:            fcmlez
127 alignment:       4
128 legalized:       true
129 regBankSelected: true
130 body:             |
131   bb.0:
132     ; CHECK-LABEL: name: fcmlez
133     ; CHECK: %lhs:fpr128 = COPY $q0
134     ; CHECK: %fcmp:fpr128 = nofpexcept FCMLEv2i64rz %lhs
135     ; CHECK: $q0 = COPY %fcmp
136     ; CHECK: RET_ReallyLR implicit $q0
137     %lhs:fpr(<2 x s64>) = COPY $q0
138     %zero:gpr(s64) = G_CONSTANT i64 0
139     %zero_vec:fpr(<2 x s64>) = G_BUILD_VECTOR %zero(s64), %zero(s64)
140     %fcmp:fpr(<2 x s64>) = G_FCMLEZ %lhs
141     $q0 = COPY %fcmp(<2 x s64>)
142     RET_ReallyLR implicit $q0
146 name:            fcmltz
147 alignment:       4
148 legalized:       true
149 regBankSelected: true
150 body:             |
151   bb.0:
152     ; CHECK-LABEL: name: fcmltz
153     ; CHECK: %lhs:fpr128 = COPY $q0
154     ; CHECK: %fcmp:fpr128 = nofpexcept FCMLTv2i64rz %lhs
155     ; CHECK: $q0 = COPY %fcmp
156     ; CHECK: RET_ReallyLR implicit $q0
157     %lhs:fpr(<2 x s64>) = COPY $q0
158     %zero:gpr(s64) = G_CONSTANT i64 0
159     %zero_vec:fpr(<2 x s64>) = G_BUILD_VECTOR %zero(s64), %zero(s64)
160     %fcmp:fpr(<2 x s64>) = G_FCMLTZ %lhs
161     $q0 = COPY %fcmp(<2 x s64>)
162     RET_ReallyLR implicit $q0