100 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64-unknown-unknown -verify-machineinstrs -run-pass=legalizer %s -o - 2>&1 | FileCheck %s3# RUN: llc -mtriple=aarch64-unknown-unknown -verify-machineinstrs -run-pass=legalizer -mattr=+cssc %s -o - | FileCheck %s --check-prefix=CHECK-CSSC4--- |5 define void @s32() noimplicitfloat { unreachable }6 define void @s64() noimplicitfloat { unreachable }7...8---9name: s3210tracksRegLiveness: true11body: |12 bb.0:13 liveins: $w014 ; CHECK-LABEL: name: s3215 ; CHECK: liveins: $w016 ; CHECK-NEXT: {{ $}}17 ; CHECK-NEXT: %copy:_(s32) = COPY $w018 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 119 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR %copy, [[C]](s64)20 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 143165576521 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[LSHR]], [[C1]]22 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB %copy, [[AND]]23 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 224 ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[SUB]], [[C2]](s64)25 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 85899345926 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[LSHR1]], [[C3]]27 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[SUB]], [[C3]]28 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[AND1]], [[AND2]]29 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s64) = G_CONSTANT i64 430 ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[ADD]], [[C4]](s64)31 ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[LSHR2]], [[ADD]]32 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 25264513533 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s32) = G_AND [[ADD1]], [[C5]]34 ; CHECK-NEXT: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 1684300935 ; CHECK-NEXT: [[MUL:%[0-9]+]]:_(s32) = G_MUL [[AND3]], [[C6]]36 ; CHECK-NEXT: [[C7:%[0-9]+]]:_(s64) = G_CONSTANT i64 2437 ; CHECK-NEXT: %ctpop:_(s32) = G_LSHR [[MUL]], [[C7]](s64)38 ; CHECK-NEXT: $w0 = COPY %ctpop(s32)39 ; CHECK-NEXT: RET_ReallyLR implicit $w040 ;41 ; CHECK-CSSC-LABEL: name: s3242 ; CHECK-CSSC: liveins: $w043 ; CHECK-CSSC-NEXT: {{ $}}44 ; CHECK-CSSC-NEXT: %copy:_(s32) = COPY $w045 ; CHECK-CSSC-NEXT: %ctpop:_(s32) = G_CTPOP %copy(s32)46 ; CHECK-CSSC-NEXT: $w0 = COPY %ctpop(s32)47 ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $w048 %copy:_(s32) = COPY $w049 %ctpop:_(s32) = G_CTPOP %copy(s32)50 $w0 = COPY %ctpop(s32)51 RET_ReallyLR implicit $w052 53...54---55name: s6456tracksRegLiveness: true57body: |58 bb.0:59 liveins: $x060 ; CHECK-LABEL: name: s6461 ; CHECK: liveins: $x062 ; CHECK-NEXT: {{ $}}63 ; CHECK-NEXT: %copy:_(s64) = COPY $x064 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 165 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR %copy, [[C]](s64)66 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 614891469123651720567 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[LSHR]], [[C1]]68 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB %copy, [[AND]]69 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 270 ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s64) = G_LSHR [[SUB]], [[C2]](s64)71 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 368934881474191032372 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[LSHR1]], [[C3]]73 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND [[SUB]], [[C3]]74 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[AND1]], [[AND2]]75 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s64) = G_CONSTANT i64 476 ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s64) = G_LSHR [[ADD]], [[C4]](s64)77 ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s64) = G_ADD [[LSHR2]], [[ADD]]78 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s64) = G_CONSTANT i64 108510259257115009579 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s64) = G_AND [[ADD1]], [[C5]]80 ; CHECK-NEXT: [[C6:%[0-9]+]]:_(s64) = G_CONSTANT i64 7234017283807667381 ; CHECK-NEXT: [[C7:%[0-9]+]]:_(s64) = G_CONSTANT i64 5682 ; CHECK-NEXT: [[MUL:%[0-9]+]]:_(s64) = G_MUL [[AND3]], [[C6]]83 ; CHECK-NEXT: %ctpop:_(s64) = G_LSHR [[MUL]], [[C7]](s64)84 ; CHECK-NEXT: $x0 = COPY %ctpop(s64)85 ; CHECK-NEXT: RET_ReallyLR implicit $x086 ;87 ; CHECK-CSSC-LABEL: name: s6488 ; CHECK-CSSC: liveins: $x089 ; CHECK-CSSC-NEXT: {{ $}}90 ; CHECK-CSSC-NEXT: %copy:_(s64) = COPY $x091 ; CHECK-CSSC-NEXT: %ctpop:_(s64) = G_CTPOP %copy(s64)92 ; CHECK-CSSC-NEXT: $x0 = COPY %ctpop(s64)93 ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $x094 %copy:_(s64) = COPY $x095 %ctpop:_(s64) = G_CTPOP %copy(s64)96 $x0 = COPY %ctpop(s64)97 RET_ReallyLR implicit $x098 99...100