[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / select-cttz.mir
blob914dab6a29a5f41e34cc5cb1ee8200a8a3877dfe
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=arm64-unknown-unknown -global-isel -run-pass=instruction-select -global-isel-abort=1 %s -o - | FileCheck %s
3 # RUN: llc -O0 -mtriple=arm64-unknown-unknown -global-isel -mattr=+cssc -run-pass=instruction-select -global-isel-abort=1 %s -o - | FileCheck %s --check-prefix=CHECK-CSSC
4 ...
5 ---
6 name:            s32
7 alignment:       4
8 legalized:       true
9 regBankSelected: true
10 tracksRegLiveness: true
11 body:             |
12   bb.0:
13     liveins: $w0
14     ; CHECK-LABEL: name: s32
15     ; CHECK: liveins: $w0
16     ; CHECK-NEXT: {{  $}}
17     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
18     ; CHECK-NEXT: [[RBITWr:%[0-9]+]]:gpr32 = RBITWr [[COPY]]
19     ; CHECK-NEXT: [[CLZWr:%[0-9]+]]:gpr32 = CLZWr [[RBITWr]]
20     ; CHECK-NEXT: $w0 = COPY [[CLZWr]]
21     ; CHECK-NEXT: RET_ReallyLR implicit $w0
22     ; CHECK-CSSC-LABEL: name: s32
23     ; CHECK-CSSC: liveins: $w0
24     ; CHECK-CSSC-NEXT: {{  $}}
25     ; CHECK-CSSC-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
26     ; CHECK-CSSC-NEXT: [[CTZWr:%[0-9]+]]:gpr32 = CTZWr [[COPY]]
27     ; CHECK-CSSC-NEXT: $w0 = COPY [[CTZWr]]
28     ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $w0
29     %0:gpr(s32) = COPY $w0
30     %1:gpr(s32) = G_CTTZ %0(s32)
31     $w0 = COPY %1(s32)
32     RET_ReallyLR implicit $w0
34 ...
35 ---
36 name:            s64
37 alignment:       4
38 legalized:       true
39 regBankSelected: true
40 tracksRegLiveness: true
41 body:             |
42   bb.0:
43     liveins: $x0
44     ; CHECK-LABEL: name: s64
45     ; CHECK: liveins: $x0
46     ; CHECK-NEXT: {{  $}}
47     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
48     ; CHECK-NEXT: [[RBITXr:%[0-9]+]]:gpr64 = RBITXr [[COPY]]
49     ; CHECK-NEXT: [[CLZXr:%[0-9]+]]:gpr64 = CLZXr [[RBITXr]]
50     ; CHECK-NEXT: $x0 = COPY [[CLZXr]]
51     ; CHECK-NEXT: RET_ReallyLR implicit $x0
52     ; CHECK-CSSC-LABEL: name: s64
53     ; CHECK-CSSC: liveins: $x0
54     ; CHECK-CSSC-NEXT: {{  $}}
55     ; CHECK-CSSC-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
56     ; CHECK-CSSC-NEXT: [[CTZXr:%[0-9]+]]:gpr64 = CTZXr [[COPY]]
57     ; CHECK-CSSC-NEXT: $x0 = COPY [[CTZXr]]
58     ; CHECK-CSSC-NEXT: RET_ReallyLR implicit $x0
59     %0:gpr(s64) = COPY $x0
60     %1:gpr(s64) = G_CTTZ %0(s64)
61     $x0 = COPY %1(s64)
62     RET_ReallyLR implicit $x0
64 ...