170 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=aarch64 -run-pass=legalizer -global-isel-abort=1 %s -o - | FileCheck %s3---4name: func5alignment: 46tracksRegLiveness: true7liveins:8 - { reg: '$w0' }9 - { reg: '$w1' }10body: |11 bb.1:12 liveins: $w0, $w113 14 ; CHECK-LABEL: name: func15 ; CHECK: liveins: $w0, $w116 ; CHECK-NEXT: {{ $}}17 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w018 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w119 ; CHECK-NEXT: [[UADDO:%[0-9]+]]:_(s32), [[UADDO1:%[0-9]+]]:_(s32) = G_UADDO [[COPY]], [[COPY1]]20 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -121 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[UADDO1]](s32), [[C]], [[UADDO]]22 ; CHECK-NEXT: $w0 = COPY [[SELECT]](s32)23 ; CHECK-NEXT: RET_ReallyLR implicit $w024 %0:_(s32) = COPY $w025 %1:_(s32) = COPY $w126 %2:_(s32) = G_UADDSAT %0, %127 $w0 = COPY %2(s32)28 RET_ReallyLR implicit $w029 30...31---32name: func233alignment: 434tracksRegLiveness: true35liveins:36 - { reg: '$x0' }37 - { reg: '$x1' }38body: |39 bb.1:40 liveins: $x0, $x141 42 ; CHECK-LABEL: name: func243 ; CHECK: liveins: $x0, $x144 ; CHECK-NEXT: {{ $}}45 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x046 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x147 ; CHECK-NEXT: [[UADDO:%[0-9]+]]:_(s64), [[UADDO1:%[0-9]+]]:_(s32) = G_UADDO [[COPY]], [[COPY1]]48 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -149 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[UADDO1]](s32), [[C]], [[UADDO]]50 ; CHECK-NEXT: $x0 = COPY [[SELECT]](s64)51 ; CHECK-NEXT: RET_ReallyLR implicit $x052 %0:_(s64) = COPY $x053 %1:_(s64) = COPY $x154 %2:_(s64) = G_UADDSAT %0, %155 $x0 = COPY %2(s64)56 RET_ReallyLR implicit $x057 58...59---60name: func1661alignment: 462tracksRegLiveness: true63liveins:64 - { reg: '$w0' }65 - { reg: '$w1' }66body: |67 bb.1:68 liveins: $w0, $w169 70 ; CHECK-LABEL: name: func1671 ; CHECK: liveins: $w0, $w172 ; CHECK-NEXT: {{ $}}73 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w074 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w175 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 6553576 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]77 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]78 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[AND]], [[AND1]]79 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[ADD]], [[C]]80 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[ADD]](s32), [[AND2]]81 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -182 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[C1]], [[ADD]]83 ; CHECK-NEXT: $w0 = COPY [[SELECT]](s32)84 ; CHECK-NEXT: RET_ReallyLR implicit $w085 %2:_(s32) = COPY $w086 %0:_(s16) = G_TRUNC %2(s32)87 %3:_(s32) = COPY $w188 %1:_(s16) = G_TRUNC %3(s32)89 %4:_(s16) = G_UADDSAT %0, %190 %5:_(s32) = G_ANYEXT %4(s16)91 $w0 = COPY %5(s32)92 RET_ReallyLR implicit $w093 94...95---96name: func897alignment: 498tracksRegLiveness: true99liveins:100 - { reg: '$w0' }101 - { reg: '$w1' }102body: |103 bb.1:104 liveins: $w0, $w1105 106 ; CHECK-LABEL: name: func8107 ; CHECK: liveins: $w0, $w1108 ; CHECK-NEXT: {{ $}}109 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0110 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1111 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255112 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]113 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]114 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[AND]], [[AND1]]115 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[ADD]], [[C]]116 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[ADD]](s32), [[AND2]]117 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1118 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[C1]], [[ADD]]119 ; CHECK-NEXT: $w0 = COPY [[SELECT]](s32)120 ; CHECK-NEXT: RET_ReallyLR implicit $w0121 %2:_(s32) = COPY $w0122 %0:_(s8) = G_TRUNC %2(s32)123 %3:_(s32) = COPY $w1124 %1:_(s8) = G_TRUNC %3(s32)125 %4:_(s8) = G_UADDSAT %0, %1126 %5:_(s32) = G_ANYEXT %4(s8)127 $w0 = COPY %5(s32)128 RET_ReallyLR implicit $w0129 130...131---132name: func3133alignment: 4134tracksRegLiveness: true135liveins:136 - { reg: '$w0' }137 - { reg: '$w1' }138frameInfo:139 maxAlignment: 1140machineFunctionInfo: {}141body: |142 bb.1:143 liveins: $w0, $w1144 145 ; CHECK-LABEL: name: func3146 ; CHECK: liveins: $w0, $w1147 ; CHECK-NEXT: {{ $}}148 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0149 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1150 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 15151 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]152 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]153 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[AND]], [[AND1]]154 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[ADD]], [[C]]155 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[ADD]](s32), [[AND2]]156 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[C]](s32)157 ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[COPY2]], [[ADD]]158 ; CHECK-NEXT: $w0 = COPY [[SELECT]](s32)159 ; CHECK-NEXT: RET_ReallyLR implicit $w0160 %2:_(s32) = COPY $w0161 %0:_(s4) = G_TRUNC %2(s32)162 %3:_(s32) = COPY $w1163 %1:_(s4) = G_TRUNC %3(s32)164 %4:_(s4) = G_UADDSAT %0, %1165 %5:_(s32) = G_ANYEXT %4(s4)166 $w0 = COPY %5(s32)167 RET_ReallyLR implicit $w0168 169...170