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
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
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
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
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
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
109 regBankSelected: true
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
129 regBankSelected: true
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
149 regBankSelected: true
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