214 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64 -run-pass=legalizer -global-isel-abort=1 %s -o - | FileCheck %s3# RUN: llc -mtriple=aarch64 -run-pass=legalizer -mattr=+cssc -global-isel-abort=1 %s -o - | FileCheck %s --check-prefix=CHECK-CSSC4---5name: abs_s326liveins:7body: |8 bb.0:9 ; CHECK-LABEL: name: abs_s3210 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w011 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 012 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[COPY]]13 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]14 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[COPY]], [[SUB]]15 ; CHECK-NEXT: $w0 = COPY [[SELECT]](s32)16 ;17 ; CHECK-CSSC-LABEL: name: abs_s3218 ; CHECK-CSSC: [[COPY:%[0-9]+]]:_(s32) = COPY $w019 ; CHECK-CSSC-NEXT: [[ABS:%[0-9]+]]:_(s32) = G_ABS [[COPY]]20 ; CHECK-CSSC-NEXT: $w0 = COPY [[ABS]](s32)21 %0:_(s32) = COPY $w022 %1:_(s32) = G_ABS %0(s32)23 $w0 = COPY %1(s32)24...25---26name: abs_s6427liveins:28body: |29 bb.0:30 ; CHECK-LABEL: name: abs_s6431 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x032 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 033 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB [[C]], [[COPY]]34 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[COPY]](s64), [[C]]35 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s32), [[COPY]], [[SUB]]36 ; CHECK-NEXT: $x0 = COPY [[SELECT]](s64)37 ;38 ; CHECK-CSSC-LABEL: name: abs_s6439 ; CHECK-CSSC: [[COPY:%[0-9]+]]:_(s64) = COPY $x040 ; CHECK-CSSC-NEXT: [[ABS:%[0-9]+]]:_(s64) = G_ABS [[COPY]]41 ; CHECK-CSSC-NEXT: $x0 = COPY [[ABS]](s64)42 %0:_(s64) = COPY $x043 %1:_(s64) = G_ABS %0(s64)44 $x0 = COPY %1(s64)45...46---47name: abs_v4s1648tracksRegLiveness: true49body: |50 bb.0:51 liveins: $d052 53 ; CHECK-LABEL: name: abs_v4s1654 ; CHECK: liveins: $d055 ; CHECK-NEXT: {{ $}}56 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d057 ; CHECK-NEXT: [[ABS:%[0-9]+]]:_(<4 x s16>) = G_ABS [[COPY]]58 ; CHECK-NEXT: $d0 = COPY [[ABS]](<4 x s16>)59 ; CHECK-NEXT: RET_ReallyLR implicit $d060 ;61 ; CHECK-CSSC-LABEL: name: abs_v4s1662 ; CHECK-CSSC: liveins: $d063 ; CHECK-CSSC-NEXT: {{ $}}64 ; CHECK-CSSC-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d065 ; CHECK-CSSC-NEXT: [[ABS:%[0-9]+]]:_(<4 x s16>) = G_ABS [[COPY]]66 ; CHECK-CSSC-NEXT: $d0 = COPY [[ABS]](<4 x s16>)67 ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $d068 %0:_(<4 x s16>) = COPY $d069 %1:_(<4 x s16>) = G_ABS %070 $d0 = COPY %1(<4 x s16>)71 RET_ReallyLR implicit $d072 73...74---75name: abs_v8s1676tracksRegLiveness: true77body: |78 bb.0:79 liveins: $q080 81 ; CHECK-LABEL: name: abs_v8s1682 ; CHECK: liveins: $q083 ; CHECK-NEXT: {{ $}}84 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q085 ; CHECK-NEXT: [[ABS:%[0-9]+]]:_(<8 x s16>) = G_ABS [[COPY]]86 ; CHECK-NEXT: $q0 = COPY [[ABS]](<8 x s16>)87 ; CHECK-NEXT: RET_ReallyLR implicit $q088 ;89 ; CHECK-CSSC-LABEL: name: abs_v8s1690 ; CHECK-CSSC: liveins: $q091 ; CHECK-CSSC-NEXT: {{ $}}92 ; CHECK-CSSC-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q093 ; CHECK-CSSC-NEXT: [[ABS:%[0-9]+]]:_(<8 x s16>) = G_ABS [[COPY]]94 ; CHECK-CSSC-NEXT: $q0 = COPY [[ABS]](<8 x s16>)95 ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $q096 %0:_(<8 x s16>) = COPY $q097 %1:_(<8 x s16>) = G_ABS %098 $q0 = COPY %1(<8 x s16>)99 RET_ReallyLR implicit $q0100 101...102---103name: abs_v2s32104tracksRegLiveness: true105body: |106 bb.0:107 liveins: $d0108 109 ; CHECK-LABEL: name: abs_v2s32110 ; CHECK: liveins: $d0111 ; CHECK-NEXT: {{ $}}112 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0113 ; CHECK-NEXT: [[ABS:%[0-9]+]]:_(<2 x s32>) = G_ABS [[COPY]]114 ; CHECK-NEXT: $d0 = COPY [[ABS]](<2 x s32>)115 ; CHECK-NEXT: RET_ReallyLR implicit $d0116 ;117 ; CHECK-CSSC-LABEL: name: abs_v2s32118 ; CHECK-CSSC: liveins: $d0119 ; CHECK-CSSC-NEXT: {{ $}}120 ; CHECK-CSSC-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0121 ; CHECK-CSSC-NEXT: [[ABS:%[0-9]+]]:_(<2 x s32>) = G_ABS [[COPY]]122 ; CHECK-CSSC-NEXT: $d0 = COPY [[ABS]](<2 x s32>)123 ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $d0124 %0:_(<2 x s32>) = COPY $d0125 %1:_(<2 x s32>) = G_ABS %0126 $d0 = COPY %1(<2 x s32>)127 RET_ReallyLR implicit $d0128 129...130---131name: abs_v4s32132tracksRegLiveness: true133body: |134 bb.0:135 liveins: $q0136 137 ; CHECK-LABEL: name: abs_v4s32138 ; CHECK: liveins: $q0139 ; CHECK-NEXT: {{ $}}140 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0141 ; CHECK-NEXT: [[ABS:%[0-9]+]]:_(<4 x s32>) = G_ABS [[COPY]]142 ; CHECK-NEXT: $q0 = COPY [[ABS]](<4 x s32>)143 ; CHECK-NEXT: RET_ReallyLR implicit $q0144 ;145 ; CHECK-CSSC-LABEL: name: abs_v4s32146 ; CHECK-CSSC: liveins: $q0147 ; CHECK-CSSC-NEXT: {{ $}}148 ; CHECK-CSSC-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0149 ; CHECK-CSSC-NEXT: [[ABS:%[0-9]+]]:_(<4 x s32>) = G_ABS [[COPY]]150 ; CHECK-CSSC-NEXT: $q0 = COPY [[ABS]](<4 x s32>)151 ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $q0152 %0:_(<4 x s32>) = COPY $q0153 %1:_(<4 x s32>) = G_ABS %0154 $q0 = COPY %1(<4 x s32>)155 RET_ReallyLR implicit $q0156 157...158---159name: abs_v4s8160tracksRegLiveness: true161body: |162 bb.0:163 liveins: $d0164 165 ; CHECK-LABEL: name: abs_v4s8166 ; CHECK: liveins: $d0167 ; CHECK-NEXT: {{ $}}168 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0169 ; CHECK-NEXT: [[ABS:%[0-9]+]]:_(<8 x s8>) = G_ABS [[COPY]]170 ; CHECK-NEXT: $d0 = COPY [[ABS]](<8 x s8>)171 ; CHECK-NEXT: RET_ReallyLR implicit $d0172 ;173 ; CHECK-CSSC-LABEL: name: abs_v4s8174 ; CHECK-CSSC: liveins: $d0175 ; CHECK-CSSC-NEXT: {{ $}}176 ; CHECK-CSSC-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0177 ; CHECK-CSSC-NEXT: [[ABS:%[0-9]+]]:_(<8 x s8>) = G_ABS [[COPY]]178 ; CHECK-CSSC-NEXT: $d0 = COPY [[ABS]](<8 x s8>)179 ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $d0180 %0:_(<8 x s8>) = COPY $d0181 %1:_(<8 x s8>) = G_ABS %0182 $d0 = COPY %1(<8 x s8>)183 RET_ReallyLR implicit $d0184 185...186---187name: abs_v16s8188tracksRegLiveness: true189body: |190 bb.0:191 liveins: $q0192 193 ; CHECK-LABEL: name: abs_v16s8194 ; CHECK: liveins: $q0195 ; CHECK-NEXT: {{ $}}196 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0197 ; CHECK-NEXT: [[ABS:%[0-9]+]]:_(<16 x s8>) = G_ABS [[COPY]]198 ; CHECK-NEXT: $q0 = COPY [[ABS]](<16 x s8>)199 ; CHECK-NEXT: RET_ReallyLR implicit $q0200 ;201 ; CHECK-CSSC-LABEL: name: abs_v16s8202 ; CHECK-CSSC: liveins: $q0203 ; CHECK-CSSC-NEXT: {{ $}}204 ; CHECK-CSSC-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0205 ; CHECK-CSSC-NEXT: [[ABS:%[0-9]+]]:_(<16 x s8>) = G_ABS [[COPY]]206 ; CHECK-CSSC-NEXT: $q0 = COPY [[ABS]](<16 x s8>)207 ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $q0208 %0:_(<16 x s8>) = COPY $q0209 %1:_(<16 x s8>) = G_ABS %0210 $q0 = COPY %1(<16 x s8>)211 RET_ReallyLR implicit $q0212 213...214