1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple aarch64-unknown-unknown -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s 3... 4--- 5name: fold_trunc 6alignment: 4 7legalized: true 8regBankSelected: true 9tracksRegLiveness: true 10body: | 11 ; CHECK-LABEL: name: fold_trunc 12 ; CHECK: bb.0: 13 ; CHECK: successors: %bb.0(0x40000000), %bb.1(0x40000000) 14 ; CHECK: liveins: $x0 15 ; CHECK: %copy:gpr64all = COPY $x0 16 ; CHECK: [[COPY:%[0-9]+]]:gpr32all = COPY %copy.sub_32 17 ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY [[COPY]] 18 ; CHECK: TBNZW [[COPY1]], 3, %bb.1 19 ; CHECK: B %bb.0 20 ; CHECK: bb.1: 21 ; CHECK: RET_ReallyLR 22 bb.0: 23 successors: %bb.0, %bb.1 24 liveins: $x0 25 %copy:gpr(s64) = COPY $x0 26 %bit:gpr(s32) = G_CONSTANT i32 8 27 %zero:gpr(s32) = G_CONSTANT i32 0 28 %fold_me:gpr(s32) = G_TRUNC %copy(s64) 29 %and:gpr(s32) = G_AND %fold_me, %bit 30 %cmp:gpr(s32) = G_ICMP intpred(ne), %and(s32), %zero 31 %cmp_trunc:gpr(s1) = G_TRUNC %cmp(s32) 32 G_BRCOND %cmp_trunc(s1), %bb.1 33 G_BR %bb.0 34 bb.1: 35 RET_ReallyLR 36