[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / opt-fold-trunc-tbz-tbnz.mir
blobbcda5c98b8cdf38e7375b813b53abe478848fb37
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple aarch64-unknown-unknown -run-pass=instruction-select -global-isel-abort=1 -verify-machineinstrs %s -o - | FileCheck %s
3 ...
4 ---
5 name:            fold_trunc
6 alignment:       4
7 legalized:       true
8 regBankSelected: true
9 tracksRegLiveness: true
10 body:             |
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     G_BRCOND %cmp, %bb.1
32     G_BR %bb.0
33   bb.1:
34     RET_ReallyLR