brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.3 KiB · 737c66c Raw
241 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64 -run-pass=legalizer -verify-machineinstrs -global-isel-abort=0 %s -o - | FileCheck %s3 4...5---6name:            s327tracksRegLiveness: true8body:             |9  bb.0:10    liveins: $w0, $w111    ; CHECK-LABEL: name: s3212    ; CHECK: liveins: $w0, $w113    ; CHECK-NEXT: {{  $}}14    ; CHECK-NEXT: %x:_(s32) = COPY $w015    ; CHECK-NEXT: %y:_(s32) = COPY $w116    ; CHECK-NEXT: [[SADDO:%[0-9]+]]:_(s32), [[SADDO1:%[0-9]+]]:_(s32) = G_SADDO %x, %y17    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 3118    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SADDO]], [[C]](s64)19    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -214748364820    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C1]]21    ; CHECK-NEXT: %saddsat:_(s32) = G_SELECT [[SADDO1]](s32), [[ADD]], [[SADDO]]22    ; CHECK-NEXT: $w0 = COPY %saddsat(s32)23    ; CHECK-NEXT: RET_ReallyLR implicit $w024    %x:_(s32) = COPY $w025    %y:_(s32) = COPY $w126    %saddsat:_(s32) = G_SADDSAT %x, %y27    $w0 = COPY %saddsat(s32)28    RET_ReallyLR implicit $w029 30...31---32name:            s6433tracksRegLiveness: true34body:             |35  bb.0:36    liveins: $x0, $x137    ; CHECK-LABEL: name: s6438    ; CHECK: liveins: $x0, $x139    ; CHECK-NEXT: {{  $}}40    ; CHECK-NEXT: %x:_(s64) = COPY $x041    ; CHECK-NEXT: %y:_(s64) = COPY $x142    ; CHECK-NEXT: [[SADDO:%[0-9]+]]:_(s64), [[SADDO1:%[0-9]+]]:_(s32) = G_SADDO %x, %y43    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 6344    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SADDO]], [[C]](s64)45    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -922337203685477580846    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[ASHR]], [[C1]]47    ; CHECK-NEXT: %saddsat:_(s64) = G_SELECT [[SADDO1]](s32), [[ADD]], [[SADDO]]48    ; CHECK-NEXT: $x0 = COPY %saddsat(s64)49    ; CHECK-NEXT: RET_ReallyLR implicit $x050    %x:_(s64) = COPY $x051    %y:_(s64) = COPY $x152    %saddsat:_(s64) = G_SADDSAT %x, %y53    $x0 = COPY %saddsat(s64)54    RET_ReallyLR implicit $x055 56...57---58name:            s1659tracksRegLiveness: true60body:             |61  bb.0:62    liveins: $w0, $w1, $w263 64    ; CHECK-LABEL: name: s1665    ; CHECK: liveins: $w0, $w1, $w266    ; CHECK-NEXT: {{  $}}67    ; CHECK-NEXT: %copy_1:_(s32) = COPY $w068    ; CHECK-NEXT: %copy_2:_(s32) = COPY $w169    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG %copy_1, 1670    ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s32) = G_SEXT_INREG %copy_2, 1671    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[SEXT_INREG]], [[SEXT_INREG1]]72    ; CHECK-NEXT: [[SEXT_INREG2:%[0-9]+]]:_(s32) = G_SEXT_INREG [[ADD]], 1673    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[ADD]](s32), [[SEXT_INREG2]]74    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY [[SEXT_INREG2]](s32)75    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1576    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY]], [[C]](s64)77    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -3276878    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C1]]79    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[ADD1]], [[ADD]]80    ; CHECK-NEXT: $w0 = COPY [[SELECT]](s32)81    ; CHECK-NEXT: RET_ReallyLR implicit $w082    %copy_1:_(s32) = COPY $w083    %x:_(s16) = G_TRUNC %copy_1(s32)84    %copy_2:_(s32) = COPY $w185    %y:_(s16) = G_TRUNC %copy_2(s32)86    %saddsat:_(s16) = G_SADDSAT %x, %y87    %ext:_(s32) = G_ANYEXT %saddsat(s16)88    $w0 = COPY %ext(s32)89    RET_ReallyLR implicit $w090 91...92---93name:            s194tracksRegLiveness: true95body:             |96  bb.0:97    liveins: $w0, $w1, $w298 99    ; CHECK-LABEL: name: s1100    ; CHECK: liveins: $w0, $w1, $w2101    ; CHECK-NEXT: {{  $}}102    ; CHECK-NEXT: %copy_1:_(s32) = COPY $w0103    ; CHECK-NEXT: %copy_2:_(s32) = COPY $w1104    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG %copy_1, 1105    ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s32) = G_SEXT_INREG %copy_2, 1106    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[SEXT_INREG]], [[SEXT_INREG1]]107    ; CHECK-NEXT: [[SEXT_INREG2:%[0-9]+]]:_(s32) = G_SEXT_INREG [[ADD]], 1108    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[ADD]](s32), [[SEXT_INREG2]]109    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY [[SEXT_INREG2]](s32)110    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0111    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY]], [[C]](s64)112    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1113    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C1]]114    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[ADD1]], [[ADD]]115    ; CHECK-NEXT: $w0 = COPY [[SELECT]](s32)116    ; CHECK-NEXT: RET_ReallyLR implicit $w0117    %copy_1:_(s32) = COPY $w0118    %x:_(s1) = G_TRUNC %copy_1(s32)119    %copy_2:_(s32) = COPY $w1120    %y:_(s1) = G_TRUNC %copy_2(s32)121    %saddsat:_(s1) = G_SADDSAT %x, %y122    %ext:_(s32) = G_ANYEXT %saddsat(s1)123    $w0 = COPY %ext(s32)124    RET_ReallyLR implicit $w0125 126...127---128name:            s3129tracksRegLiveness: true130body:             |131  bb.0:132    liveins: $w0, $w1, $w2133 134    ; CHECK-LABEL: name: s3135    ; CHECK: liveins: $w0, $w1, $w2136    ; CHECK-NEXT: {{  $}}137    ; CHECK-NEXT: %copy_1:_(s32) = COPY $w0138    ; CHECK-NEXT: %copy_2:_(s32) = COPY $w1139    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG %copy_1, 3140    ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s32) = G_SEXT_INREG %copy_2, 3141    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[SEXT_INREG]], [[SEXT_INREG1]]142    ; CHECK-NEXT: [[SEXT_INREG2:%[0-9]+]]:_(s32) = G_SEXT_INREG [[ADD]], 3143    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[ADD]](s32), [[SEXT_INREG2]]144    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY [[SEXT_INREG2]](s32)145    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 2146    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY]], [[C]](s64)147    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4148    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C1]]149    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[ADD1]], [[ADD]]150    ; CHECK-NEXT: $w0 = COPY [[SELECT]](s32)151    ; CHECK-NEXT: RET_ReallyLR implicit $w0152    %copy_1:_(s32) = COPY $w0153    %x:_(s3) = G_TRUNC %copy_1(s32)154    %copy_2:_(s32) = COPY $w1155    %y:_(s3) = G_TRUNC %copy_2(s32)156    %saddsat:_(s3) = G_SADDSAT %x, %y157    %ext:_(s32) = G_ANYEXT %saddsat(s3)158    $w0 = COPY %ext(s32)159    RET_ReallyLR implicit $w0160 161...162---163name:            s36164tracksRegLiveness: true165body:             |166  bb.0:167    liveins: $x0, $x1168 169    ; CHECK-LABEL: name: s36170    ; CHECK: liveins: $x0, $x1171    ; CHECK-NEXT: {{  $}}172    ; CHECK-NEXT: %copy_1:_(s64) = COPY $x0173    ; CHECK-NEXT: %copy_2:_(s64) = COPY $x1174    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG %copy_1, 36175    ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG %copy_2, 36176    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[SEXT_INREG]], [[SEXT_INREG1]]177    ; CHECK-NEXT: [[SEXT_INREG2:%[0-9]+]]:_(s64) = G_SEXT_INREG [[ADD]], 36178    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[ADD]](s64), [[SEXT_INREG2]]179    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 35180    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY [[SEXT_INREG2]](s64)181    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[COPY]], [[C]](s64)182    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 34359738368183    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s64) = G_ADD [[ASHR]], [[C1]]184    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s32), [[ADD1]], [[ADD]]185    ; CHECK-NEXT: $x0 = COPY [[SELECT]](s64)186    ; CHECK-NEXT: RET_ReallyLR implicit $x0187    %copy_1:_(s64) = COPY $x0188    %x:_(s36) = G_TRUNC %copy_1(s64)189    %copy_2:_(s64) = COPY $x1190    %y:_(s36) = G_TRUNC %copy_2(s64)191    %saddsat:_(s36) = G_SADDSAT %x, %y192    %ext:_(s64) = G_ANYEXT %saddsat(s36)193    $x0 = COPY %ext(s64)194    RET_ReallyLR implicit $x0195 196...197---198name:            s88199tracksRegLiveness: true200body:             |201  bb.0:202    liveins: $q0, $q1, $x0203    ; CHECK-LABEL: name: s88204    ; CHECK: liveins: $q0, $q1, $x0205    ; CHECK-NEXT: {{  $}}206    ; CHECK-NEXT: %copy_1:_(s128) = COPY $q0207    ; CHECK-NEXT: %copy_2:_(s128) = COPY $q1208    ; CHECK-NEXT: [[EXTRACT:%[0-9]+]]:_(s64) = G_EXTRACT %copy_1(s128), 0209    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0210    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES %copy_1(s128)211    ; CHECK-NEXT: [[EXTRACT1:%[0-9]+]]:_(s64) = G_EXTRACT %copy_2(s128), 0212    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s64), [[UV3:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES %copy_2(s128)213    ; CHECK-NEXT: [[UADDO:%[0-9]+]]:_(s64), [[UADDO1:%[0-9]+]]:_(s32) = G_UADDO [[EXTRACT]], [[EXTRACT1]]214    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[UV1]](s64)215    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[TRUNC]], 24216    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[UV3]](s64)217    ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s32) = G_SEXT_INREG [[TRUNC1]], 24218    ; CHECK-NEXT: [[UADDE:%[0-9]+]]:_(s32), [[UADDE1:%[0-9]+]]:_(s32) = G_UADDE [[SEXT_INREG]], [[SEXT_INREG1]], [[UADDO1]]219    ; CHECK-NEXT: [[SEXT_INREG2:%[0-9]+]]:_(s32) = G_SEXT_INREG [[UADDE]], 24220    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[UADDE]](s32), [[SEXT_INREG2]]221    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(s8), [[UV5:%[0-9]+]]:_(s8), [[UV6:%[0-9]+]]:_(s8), [[UV7:%[0-9]+]]:_(s8) = G_UNMERGE_VALUES [[UADDE]](s32)222    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s8) = G_IMPLICIT_DEF223    ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s32) = G_MERGE_VALUES [[UV4]](s8), [[UV5]](s8), [[UV6]](s8), [[DEF]](s8)224    ; CHECK-NEXT: [[MV1:%[0-9]+]]:_(s32) = G_MERGE_VALUES [[DEF]](s8), [[DEF]](s8), [[DEF]](s8), [[DEF]](s8)225    ; CHECK-NEXT: [[MV2:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[MV]](s32), [[MV1]](s32)226    ; CHECK-NEXT: [[SEXT_INREG3:%[0-9]+]]:_(s64) = G_SEXT_INREG [[MV2]], 24227    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 23228    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SEXT_INREG3]], [[C1]](s64)229    ; CHECK-NEXT: [[UADDO2:%[0-9]+]]:_(s64), [[UADDO3:%[0-9]+]]:_(s32) = G_UADDO [[ASHR]], [[C]]230    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s32), [[UADDO2]], [[UADDO]]231    ; CHECK-NEXT: $x0 = COPY [[SELECT]](s64)232    ; CHECK-NEXT: RET_ReallyLR implicit $x0233    %copy_1:_(s128) = COPY $q0234    %x:_(s88) = G_TRUNC %copy_1(s128)235    %copy_2:_(s128) = COPY $q1236    %y:_(s88) = G_TRUNC %copy_2(s128)237    %saddsat:_(s88) = G_SADDSAT %x, %y238    %trunc:_(s64) = G_TRUNC %saddsat(s88)239    $x0 = COPY %trunc(s64)240    RET_ReallyLR implicit $x0241