131 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64 -global-isel -verify-machineinstrs -run-pass=legalizer %s -o - | FileCheck %s3# RUN: llc -mtriple=aarch64 -global-isel -verify-machineinstrs -mattr=+cssc -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=CHECK-CSSC4...5---6name: s87tracksRegLiveness: true8body: |9 bb.0:10 liveins: $w011 ; CHECK-LABEL: name: s812 ; CHECK: liveins: $w013 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF15 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 25616 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[DEF]], [[C]]17 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s32) = G_BITREVERSE [[OR]]18 ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(s32) = G_CTLZ [[BITREVERSE]](s32)19 ; CHECK-NEXT: $w0 = COPY [[CTLZ]](s32)20 ; CHECK-NEXT: RET_ReallyLR implicit $w021 ;22 ; CHECK-CSSC-LABEL: name: s823 ; CHECK-CSSC: liveins: $w024 ; CHECK-CSSC-NEXT: {{ $}}25 ; CHECK-CSSC-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF26 ; CHECK-CSSC-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 25627 ; CHECK-CSSC-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[DEF]], [[C]]28 ; CHECK-CSSC-NEXT: [[CTTZ:%[0-9]+]]:_(s32) = G_CTTZ [[OR]](s32)29 ; CHECK-CSSC-NEXT: $w0 = COPY [[CTTZ]](s32)30 ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $w031 %val:_(s8) = G_IMPLICIT_DEF32 %cttz:_(s8) = G_CTTZ_ZERO_UNDEF %val(s8)33 %ext:_(s32) = G_ANYEXT %cttz(s8)34 $w0 = COPY %ext(s32)35 RET_ReallyLR implicit $w036 37...38---39name: s1640tracksRegLiveness: true41body: |42 bb.0:43 liveins: $w044 ; CHECK-LABEL: name: s1645 ; CHECK: liveins: $w046 ; CHECK-NEXT: {{ $}}47 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF48 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 6553649 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[DEF]], [[C]]50 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s32) = G_BITREVERSE [[OR]]51 ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(s32) = G_CTLZ [[BITREVERSE]](s32)52 ; CHECK-NEXT: $w0 = COPY [[CTLZ]](s32)53 ; CHECK-NEXT: RET_ReallyLR implicit $w054 ;55 ; CHECK-CSSC-LABEL: name: s1656 ; CHECK-CSSC: liveins: $w057 ; CHECK-CSSC-NEXT: {{ $}}58 ; CHECK-CSSC-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF59 ; CHECK-CSSC-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 6553660 ; CHECK-CSSC-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[DEF]], [[C]]61 ; CHECK-CSSC-NEXT: [[CTTZ:%[0-9]+]]:_(s32) = G_CTTZ [[OR]](s32)62 ; CHECK-CSSC-NEXT: $w0 = COPY [[CTTZ]](s32)63 ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $w064 %val:_(s16) = G_IMPLICIT_DEF65 %cttz:_(s16) = G_CTTZ_ZERO_UNDEF %val(s16)66 %ext:_(s32) = G_ANYEXT %cttz(s16)67 $w0 = COPY %ext(s32)68 RET_ReallyLR implicit $w069 70...71---72name: s3273alignment: 474tracksRegLiveness: true75body: |76 bb.0:77 liveins: $w078 79 ; CHECK-LABEL: name: s3280 ; CHECK: liveins: $w081 ; CHECK-NEXT: {{ $}}82 ; CHECK-NEXT: %val:_(s32) = COPY $w083 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s32) = G_BITREVERSE %val84 ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(s32) = G_CTLZ [[BITREVERSE]](s32)85 ; CHECK-NEXT: $w0 = COPY [[CTLZ]](s32)86 ; CHECK-NEXT: RET_ReallyLR implicit $w087 ;88 ; CHECK-CSSC-LABEL: name: s3289 ; CHECK-CSSC: liveins: $w090 ; CHECK-CSSC-NEXT: {{ $}}91 ; CHECK-CSSC-NEXT: %val:_(s32) = COPY $w092 ; CHECK-CSSC-NEXT: [[CTTZ:%[0-9]+]]:_(s32) = G_CTTZ %val(s32)93 ; CHECK-CSSC-NEXT: $w0 = COPY [[CTTZ]](s32)94 ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $w095 %val:_(s32) = COPY $w096 %1:_(s32) = G_CTTZ_ZERO_UNDEF %val(s32)97 $w0 = COPY %1(s32)98 RET_ReallyLR implicit $w099 100...101---102name: s64103alignment: 4104tracksRegLiveness: true105body: |106 bb.0:107 liveins: $x0108 109 ; CHECK-LABEL: name: s64110 ; CHECK: liveins: $x0111 ; CHECK-NEXT: {{ $}}112 ; CHECK-NEXT: %val:_(s64) = COPY $x0113 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s64) = G_BITREVERSE %val114 ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(s64) = G_CTLZ [[BITREVERSE]](s64)115 ; CHECK-NEXT: $x0 = COPY [[CTLZ]](s64)116 ; CHECK-NEXT: RET_ReallyLR implicit $x0117 ;118 ; CHECK-CSSC-LABEL: name: s64119 ; CHECK-CSSC: liveins: $x0120 ; CHECK-CSSC-NEXT: {{ $}}121 ; CHECK-CSSC-NEXT: %val:_(s64) = COPY $x0122 ; CHECK-CSSC-NEXT: [[CTTZ:%[0-9]+]]:_(s64) = G_CTTZ %val(s64)123 ; CHECK-CSSC-NEXT: $x0 = COPY [[CTTZ]](s64)124 ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $x0125 %val:_(s64) = COPY $x0126 %1:_(s64) = G_CTTZ_ZERO_UNDEF %val(s64)127 $x0 = COPY %1(s64)128 RET_ReallyLR implicit $x0129 130...131