193 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc %s -verify-machineinstrs -mtriple=aarch64-unknown-unknown -run-pass=legalizer -simplify-mir -aarch64-neon-syntax=apple -mattr=-fullfp16 -o - | FileCheck %s --check-prefix=NO-FP163# RUN: llc %s -verify-machineinstrs -mtriple=aarch64-unknown-unknown -run-pass=legalizer -simplify-mir -aarch64-neon-syntax=apple -mattr=+fullfp16 -o - | FileCheck %s --check-prefix=FP164 5...6---7name: test_f16.intrinsic_trunc8alignment: 49tracksRegLiveness: true10body: |11 bb.0:12 liveins: $h013 ; NO-FP16-LABEL: name: test_f16.intrinsic_trunc14 ; NO-FP16: liveins: $h015 ; NO-FP16-NEXT: {{ $}}16 ; NO-FP16-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $h017 ; NO-FP16-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT [[COPY]](s16)18 ; NO-FP16-NEXT: [[INTRINSIC_TRUNC:%[0-9]+]]:_(s32) = G_INTRINSIC_TRUNC [[FPEXT]]19 ; NO-FP16-NEXT: [[FPTRUNC:%[0-9]+]]:_(s16) = G_FPTRUNC [[INTRINSIC_TRUNC]](s32)20 ; NO-FP16-NEXT: $h0 = COPY [[FPTRUNC]](s16)21 ; NO-FP16-NEXT: RET_ReallyLR implicit $h022 ;23 ; FP16-LABEL: name: test_f16.intrinsic_trunc24 ; FP16: liveins: $h025 ; FP16-NEXT: {{ $}}26 ; FP16-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $h027 ; FP16-NEXT: [[INTRINSIC_TRUNC:%[0-9]+]]:_(s16) = G_INTRINSIC_TRUNC [[COPY]]28 ; FP16-NEXT: $h0 = COPY [[INTRINSIC_TRUNC]](s16)29 ; FP16-NEXT: RET_ReallyLR implicit $h030 %0:_(s16) = COPY $h031 %1:_(s16) = G_INTRINSIC_TRUNC %032 $h0 = COPY %1(s16)33 RET_ReallyLR implicit $h034 35...36---37name: test_v4f16.intrinsic_trunc38alignment: 439tracksRegLiveness: true40machineFunctionInfo: {}41body: |42 bb.0:43 liveins: $d044 45 ; NO-FP16-LABEL: name: test_v4f16.intrinsic_trunc46 ; NO-FP16: liveins: $d047 ; NO-FP16-NEXT: {{ $}}48 ; NO-FP16-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d049 ; NO-FP16-NEXT: [[FPEXT:%[0-9]+]]:_(<4 x s32>) = G_FPEXT [[COPY]](<4 x s16>)50 ; NO-FP16-NEXT: [[INTRINSIC_TRUNC:%[0-9]+]]:_(<4 x s32>) = G_INTRINSIC_TRUNC [[FPEXT]]51 ; NO-FP16-NEXT: [[FPTRUNC:%[0-9]+]]:_(<4 x s16>) = G_FPTRUNC [[INTRINSIC_TRUNC]](<4 x s32>)52 ; NO-FP16-NEXT: $d0 = COPY [[FPTRUNC]](<4 x s16>)53 ; NO-FP16-NEXT: RET_ReallyLR implicit $d054 ;55 ; FP16-LABEL: name: test_v4f16.intrinsic_trunc56 ; FP16: liveins: $d057 ; FP16-NEXT: {{ $}}58 ; FP16-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d059 ; FP16-NEXT: [[INTRINSIC_TRUNC:%[0-9]+]]:_(<4 x s16>) = G_INTRINSIC_TRUNC [[COPY]]60 ; FP16-NEXT: $d0 = COPY [[INTRINSIC_TRUNC]](<4 x s16>)61 ; FP16-NEXT: RET_ReallyLR implicit $d062 %0:_(<4 x s16>) = COPY $d063 %1:_(<4 x s16>) = G_INTRINSIC_TRUNC %064 $d0 = COPY %1(<4 x s16>)65 RET_ReallyLR implicit $d066 67...68---69name: test_v8f16.intrinsic_trunc70alignment: 471tracksRegLiveness: true72machineFunctionInfo: {}73body: |74 bb.0:75 liveins: $q076 77 ; NO-FP16-LABEL: name: test_v8f16.intrinsic_trunc78 ; NO-FP16: liveins: $q079 ; NO-FP16-NEXT: {{ $}}80 ; NO-FP16-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q081 ; NO-FP16-NEXT: [[UV:%[0-9]+]]:_(<4 x s16>), [[UV1:%[0-9]+]]:_(<4 x s16>) = G_UNMERGE_VALUES [[COPY]](<8 x s16>)82 ; NO-FP16-NEXT: [[FPEXT:%[0-9]+]]:_(<4 x s32>) = G_FPEXT [[UV]](<4 x s16>)83 ; NO-FP16-NEXT: [[FPEXT1:%[0-9]+]]:_(<4 x s32>) = G_FPEXT [[UV1]](<4 x s16>)84 ; NO-FP16-NEXT: [[INTRINSIC_TRUNC:%[0-9]+]]:_(<4 x s32>) = G_INTRINSIC_TRUNC [[FPEXT]]85 ; NO-FP16-NEXT: [[INTRINSIC_TRUNC1:%[0-9]+]]:_(<4 x s32>) = G_INTRINSIC_TRUNC [[FPEXT1]]86 ; NO-FP16-NEXT: [[FPTRUNC:%[0-9]+]]:_(<4 x s16>) = G_FPTRUNC [[INTRINSIC_TRUNC]](<4 x s32>)87 ; NO-FP16-NEXT: [[FPTRUNC1:%[0-9]+]]:_(<4 x s16>) = G_FPTRUNC [[INTRINSIC_TRUNC1]](<4 x s32>)88 ; NO-FP16-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[FPTRUNC]](<4 x s16>), [[FPTRUNC1]](<4 x s16>)89 ; NO-FP16-NEXT: $q0 = COPY [[CONCAT_VECTORS]](<8 x s16>)90 ; NO-FP16-NEXT: RET_ReallyLR implicit $q091 ;92 ; FP16-LABEL: name: test_v8f16.intrinsic_trunc93 ; FP16: liveins: $q094 ; FP16-NEXT: {{ $}}95 ; FP16-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q096 ; FP16-NEXT: [[INTRINSIC_TRUNC:%[0-9]+]]:_(<8 x s16>) = G_INTRINSIC_TRUNC [[COPY]]97 ; FP16-NEXT: $q0 = COPY [[INTRINSIC_TRUNC]](<8 x s16>)98 ; FP16-NEXT: RET_ReallyLR implicit $q099 %0:_(<8 x s16>) = COPY $q0100 %1:_(<8 x s16>) = G_INTRINSIC_TRUNC %0101 $q0 = COPY %1(<8 x s16>)102 RET_ReallyLR implicit $q0103 104...105---106name: test_v2f32.intrinsic_trunc107alignment: 4108tracksRegLiveness: true109machineFunctionInfo: {}110body: |111 bb.0:112 liveins: $d0113 114 ; NO-FP16-LABEL: name: test_v2f32.intrinsic_trunc115 ; NO-FP16: liveins: $d0116 ; NO-FP16-NEXT: {{ $}}117 ; NO-FP16-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0118 ; NO-FP16-NEXT: [[INTRINSIC_TRUNC:%[0-9]+]]:_(<2 x s32>) = G_INTRINSIC_TRUNC [[COPY]]119 ; NO-FP16-NEXT: $d0 = COPY [[INTRINSIC_TRUNC]](<2 x s32>)120 ; NO-FP16-NEXT: RET_ReallyLR implicit $d0121 ;122 ; FP16-LABEL: name: test_v2f32.intrinsic_trunc123 ; FP16: liveins: $d0124 ; FP16-NEXT: {{ $}}125 ; FP16-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0126 ; FP16-NEXT: [[INTRINSIC_TRUNC:%[0-9]+]]:_(<2 x s32>) = G_INTRINSIC_TRUNC [[COPY]]127 ; FP16-NEXT: $d0 = COPY [[INTRINSIC_TRUNC]](<2 x s32>)128 ; FP16-NEXT: RET_ReallyLR implicit $d0129 %0:_(<2 x s32>) = COPY $d0130 %1:_(<2 x s32>) = G_INTRINSIC_TRUNC %0131 $d0 = COPY %1(<2 x s32>)132 RET_ReallyLR implicit $d0133 134...135---136name: test_v4f32.intrinsic_trunc137alignment: 4138tracksRegLiveness: true139machineFunctionInfo: {}140body: |141 bb.0:142 liveins: $q0143 144 ; NO-FP16-LABEL: name: test_v4f32.intrinsic_trunc145 ; NO-FP16: liveins: $q0146 ; NO-FP16-NEXT: {{ $}}147 ; NO-FP16-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0148 ; NO-FP16-NEXT: [[INTRINSIC_TRUNC:%[0-9]+]]:_(<4 x s32>) = G_INTRINSIC_TRUNC [[COPY]]149 ; NO-FP16-NEXT: $q0 = COPY [[INTRINSIC_TRUNC]](<4 x s32>)150 ; NO-FP16-NEXT: RET_ReallyLR implicit $q0151 ;152 ; FP16-LABEL: name: test_v4f32.intrinsic_trunc153 ; FP16: liveins: $q0154 ; FP16-NEXT: {{ $}}155 ; FP16-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0156 ; FP16-NEXT: [[INTRINSIC_TRUNC:%[0-9]+]]:_(<4 x s32>) = G_INTRINSIC_TRUNC [[COPY]]157 ; FP16-NEXT: $q0 = COPY [[INTRINSIC_TRUNC]](<4 x s32>)158 ; FP16-NEXT: RET_ReallyLR implicit $q0159 %0:_(<4 x s32>) = COPY $q0160 %1:_(<4 x s32>) = G_INTRINSIC_TRUNC %0161 $q0 = COPY %1(<4 x s32>)162 RET_ReallyLR implicit $q0163 164...165---166name: test_v2f64.intrinsic_trunc167alignment: 4168tracksRegLiveness: true169machineFunctionInfo: {}170body: |171 bb.0:172 liveins: $q0173 174 ; NO-FP16-LABEL: name: test_v2f64.intrinsic_trunc175 ; NO-FP16: liveins: $q0176 ; NO-FP16-NEXT: {{ $}}177 ; NO-FP16-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0178 ; NO-FP16-NEXT: [[INTRINSIC_TRUNC:%[0-9]+]]:_(<2 x s64>) = G_INTRINSIC_TRUNC [[COPY]]179 ; NO-FP16-NEXT: $q0 = COPY [[INTRINSIC_TRUNC]](<2 x s64>)180 ; NO-FP16-NEXT: RET_ReallyLR implicit $q0181 ;182 ; FP16-LABEL: name: test_v2f64.intrinsic_trunc183 ; FP16: liveins: $q0184 ; FP16-NEXT: {{ $}}185 ; FP16-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0186 ; FP16-NEXT: [[INTRINSIC_TRUNC:%[0-9]+]]:_(<2 x s64>) = G_INTRINSIC_TRUNC [[COPY]]187 ; FP16-NEXT: $q0 = COPY [[INTRINSIC_TRUNC]](<2 x s64>)188 ; FP16-NEXT: RET_ReallyLR implicit $q0189 %0:_(<2 x s64>) = COPY $q0190 %1:_(<2 x s64>) = G_INTRINSIC_TRUNC %0191 $q0 = COPY %1(<2 x s64>)192 RET_ReallyLR implicit $q0193