189 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple aarch64 -mattr=+fullfp16 -run-pass=aarch64-prelegalizer-combiner -global-isel -verify-machineinstrs %s -o - | FileCheck %s3---4name: test_s165body: |6 bb.0:7 liveins: $h08 9 ; CHECK-LABEL: name: test_s1610 ; CHECK: liveins: $h011 ; CHECK-NEXT: {{ $}}12 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $h013 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s16) = G_FCONSTANT half 0xH000014 ; CHECK-NEXT: [[FMAXIMUM:%[0-9]+]]:_(s16) = G_FMAXIMUM [[COPY]], [[C]]15 ; CHECK-NEXT: $h0 = COPY [[FMAXIMUM]](s16)16 ; CHECK-NEXT: RET_ReallyLR implicit $h017 %0:_(s16) = COPY $h018 %1:_(s16) = G_FCONSTANT half 0xH000019 %2:_(s1) = G_FCMP floatpred(olt), %0(s16), %120 %3:_(s16) = G_SELECT %2(s1), %1, %021 $h0 = COPY %3(s16)22 RET_ReallyLR implicit $h023 24...25---26name: test_s3227body: |28 bb.0:29 liveins: $s030 31 ; CHECK-LABEL: name: test_s3232 ; CHECK: liveins: $s033 ; CHECK-NEXT: {{ $}}34 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $s035 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float 0.000000e+0036 ; CHECK-NEXT: [[FMAXIMUM:%[0-9]+]]:_(s32) = G_FMAXIMUM [[COPY]], [[C]]37 ; CHECK-NEXT: $s0 = COPY [[FMAXIMUM]](s32)38 ; CHECK-NEXT: RET_ReallyLR implicit $s039 %0:_(s32) = COPY $s040 %1:_(s32) = G_FCONSTANT float 0.000000e+0041 %2:_(s1) = G_FCMP floatpred(olt), %0(s32), %142 %3:_(s32) = G_SELECT %2(s1), %1, %043 $s0 = COPY %3(s32)44 RET_ReallyLR implicit $s045 46...47---48name: test_s6449body: |50 bb.0:51 liveins: $d052 53 ; CHECK-LABEL: name: test_s6454 ; CHECK: liveins: $d055 ; CHECK-NEXT: {{ $}}56 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d057 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 0.000000e+0058 ; CHECK-NEXT: [[FMAXIMUM:%[0-9]+]]:_(s64) = G_FMAXIMUM [[COPY]], [[C]]59 ; CHECK-NEXT: $d0 = COPY [[FMAXIMUM]](s64)60 ; CHECK-NEXT: RET_ReallyLR implicit $d061 %0:_(s64) = COPY $d062 %1:_(s64) = G_FCONSTANT double 0.000000e+0063 %2:_(s1) = G_FCMP floatpred(olt), %0(s64), %164 %3:_(s64) = G_SELECT %2(s1), %1, %065 $d0 = COPY %3(s64)66 RET_ReallyLR implicit $d067 68...69---70name: test_s64_fmin71body: |72 bb.0:73 liveins: $d074 75 ; CHECK-LABEL: name: test_s64_fmin76 ; CHECK: liveins: $d077 ; CHECK-NEXT: {{ $}}78 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d079 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 0.000000e+0080 ; CHECK-NEXT: [[FMINIMUM:%[0-9]+]]:_(s64) = G_FMINIMUM [[COPY]], [[C]]81 ; CHECK-NEXT: $d0 = COPY [[FMINIMUM]](s64)82 ; CHECK-NEXT: RET_ReallyLR implicit $d083 %0:_(s64) = COPY $d084 %1:_(s64) = G_FCONSTANT double 0.000000e+0085 %2:_(s1) = G_FCMP floatpred(ogt), %0(s64), %186 %3:_(s64) = G_SELECT %2(s1), %1, %087 $d0 = COPY %3(s64)88 RET_ReallyLR implicit $d089 90...91---92name: test_v8s1693body: |94 bb.0:95 liveins: $q096 97 ; CHECK-LABEL: name: test_v8s1698 ; CHECK: liveins: $q099 ; CHECK-NEXT: {{ $}}100 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0101 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s16) = G_FCONSTANT half 0xH0000102 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s16>) = G_BUILD_VECTOR [[C]](s16), [[C]](s16), [[C]](s16), [[C]](s16), [[C]](s16), [[C]](s16), [[C]](s16), [[C]](s16)103 ; CHECK-NEXT: [[FMAXIMUM:%[0-9]+]]:_(<8 x s16>) = G_FMAXIMUM [[COPY]], [[BUILD_VECTOR]]104 ; CHECK-NEXT: $q0 = COPY [[FMAXIMUM]](<8 x s16>)105 ; CHECK-NEXT: RET_ReallyLR implicit $q0106 %0:_(<8 x s16>) = COPY $q0107 %2:_(s16) = G_FCONSTANT half 0xH0000108 %1:_(<8 x s16>) = G_BUILD_VECTOR %2(s16), %2(s16), %2(s16), %2(s16), %2(s16), %2(s16), %2(s16), %2(s16)109 %3:_(<8 x s1>) = G_FCMP floatpred(olt), %0(<8 x s16>), %1110 %4:_(<8 x s16>) = G_SELECT %3(<8 x s1>), %1, %0111 $q0 = COPY %4(<8 x s16>)112 RET_ReallyLR implicit $q0113 114...115---116name: test_v4s32117body: |118 bb.0:119 liveins: $q0120 121 ; CHECK-LABEL: name: test_v4s32122 ; CHECK: liveins: $q0123 ; CHECK-NEXT: {{ $}}124 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0125 ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(<4 x s32>) = G_BITCAST [[COPY]](<2 x s64>)126 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float 0.000000e+00127 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[C]](s32), [[C]](s32), [[C]](s32), [[C]](s32)128 ; CHECK-NEXT: [[FMAXIMUM:%[0-9]+]]:_(<4 x s32>) = G_FMAXIMUM [[BITCAST]], [[BUILD_VECTOR]]129 ; CHECK-NEXT: $q0 = COPY [[FMAXIMUM]](<4 x s32>)130 ; CHECK-NEXT: RET_ReallyLR implicit $q0131 %1:_(<2 x s64>) = COPY $q0132 %0:_(<4 x s32>) = G_BITCAST %1(<2 x s64>)133 %3:_(s32) = G_FCONSTANT float 0.000000e+00134 %2:_(<4 x s32>) = G_BUILD_VECTOR %3(s32), %3(s32), %3(s32), %3(s32)135 %4:_(<4 x s1>) = G_FCMP floatpred(olt), %0(<4 x s32>), %2136 %5:_(<4 x s32>) = G_SELECT %4(<4 x s1>), %2, %0137 $q0 = COPY %5(<4 x s32>)138 RET_ReallyLR implicit $q0139 140...141---142name: test_v2s64143body: |144 bb.0:145 liveins: $q0146 147 ; CHECK-LABEL: name: test_v2s64148 ; CHECK: liveins: $q0149 ; CHECK-NEXT: {{ $}}150 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0151 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 0.000000e+00152 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[C]](s64), [[C]](s64)153 ; CHECK-NEXT: [[FMAXIMUM:%[0-9]+]]:_(<2 x s64>) = G_FMAXIMUM [[COPY]], [[BUILD_VECTOR]]154 ; CHECK-NEXT: $q0 = COPY [[FMAXIMUM]](<2 x s64>)155 ; CHECK-NEXT: RET_ReallyLR implicit $q0156 %0:_(<2 x s64>) = COPY $q0157 %2:_(s64) = G_FCONSTANT double 0.000000e+00158 %1:_(<2 x s64>) = G_BUILD_VECTOR %2(s64), %2(s64)159 %3:_(<2 x s1>) = G_FCMP floatpred(olt), %0(<2 x s64>), %1160 %4:_(<2 x s64>) = G_SELECT %3(<2 x s1>), %1, %0161 $q0 = COPY %4(<2 x s64>)162 RET_ReallyLR implicit $q0163 164...165---166name: test_v2s64_fmin167body: |168 bb.0:169 liveins: $q0170 171 ; CHECK-LABEL: name: test_v2s64_fmin172 ; CHECK: liveins: $q0173 ; CHECK-NEXT: {{ $}}174 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0175 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 0.000000e+00176 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[C]](s64), [[C]](s64)177 ; CHECK-NEXT: [[FMINIMUM:%[0-9]+]]:_(<2 x s64>) = G_FMINIMUM [[COPY]], [[BUILD_VECTOR]]178 ; CHECK-NEXT: $q0 = COPY [[FMINIMUM]](<2 x s64>)179 ; CHECK-NEXT: RET_ReallyLR implicit $q0180 %0:_(<2 x s64>) = COPY $q0181 %2:_(s64) = G_FCONSTANT double 0.000000e+00182 %1:_(<2 x s64>) = G_BUILD_VECTOR %2(s64), %2(s64)183 %3:_(<2 x s1>) = G_FCMP floatpred(ogt), %0(<2 x s64>), %1184 %4:_(<2 x s64>) = G_SELECT %3(<2 x s1>), %1, %0185 $q0 = COPY %4(<2 x s64>)186 RET_ReallyLR implicit $q0187 188...189