[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / select-bitreverse.mir
blobefff1160b951ecdf479ac5953036c3b544f03b85
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple aarch64 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
4 ...
5 ---
6 name:            s32
7 legalized:       true
8 regBankSelected: true
9 tracksRegLiveness: true
10 body:             |
11   bb.0:
12     liveins: $w0
14     ; CHECK-LABEL: name: s32
15     ; CHECK: liveins: $w0
16     ; CHECK: %copy:gpr32 = COPY $w0
17     ; CHECK: %bitreverse:gpr32 = RBITWr %copy
18     ; CHECK: $w0 = COPY %bitreverse
19     ; CHECK: RET_ReallyLR implicit $w0
20     %copy:gpr(s32) = COPY $w0
21     %bitreverse:gpr(s32) = G_BITREVERSE %copy
22     $w0 = COPY %bitreverse(s32)
23     RET_ReallyLR implicit $w0
25 ...
26 ---
27 name:            s64
28 legalized:       true
29 regBankSelected: true
30 tracksRegLiveness: true
31 body:             |
32   bb.0:
33     liveins: $x0
35     ; CHECK-LABEL: name: s64
36     ; CHECK: liveins: $x0
37     ; CHECK: %copy:gpr64 = COPY $x0
38     ; CHECK: %bitreverse:gpr64 = RBITXr %copy
39     ; CHECK: $x0 = COPY %bitreverse
40     ; CHECK: RET_ReallyLR implicit $x0
41     %copy:gpr(s64) = COPY $x0
42     %bitreverse:gpr(s64) = G_BITREVERSE %copy
43     $x0 = COPY %bitreverse(s64)
44     RET_ReallyLR implicit $x0
46 ...
47 ---
48 name:            v8s8_legal
49 legalized:       true
50 regBankSelected: true
51 tracksRegLiveness: true
52 body:             |
53   bb.0:
54     liveins: $x0
56     ; CHECK-LABEL: name: v8s8_legal
57     ; CHECK: liveins: $x0
58     ; CHECK: %vec:fpr64 = IMPLICIT_DEF
59     ; CHECK: %bitreverse:fpr64 = RBITv8i8 %vec
60     ; CHECK: $x0 = COPY %bitreverse
61     ; CHECK: RET_ReallyLR implicit $x0
62     %vec:fpr(<8 x s8>) = G_IMPLICIT_DEF
63     %bitreverse:fpr(<8 x s8>) = G_BITREVERSE %vec
64     $x0 = COPY %bitreverse(<8 x s8>)
65     RET_ReallyLR implicit $x0
67 ...
68 ---
69 name:            v16s8_legal
70 legalized:       true
71 regBankSelected: true
72 tracksRegLiveness: true
73 body:             |
74   bb.0:
75     liveins: $q0
77     ; CHECK-LABEL: name: v16s8_legal
78     ; CHECK: liveins: $q0
79     ; CHECK: %vec:fpr128 = IMPLICIT_DEF
80     ; CHECK: %bitreverse:fpr128 = RBITv16i8 %vec
81     ; CHECK: $q0 = COPY %bitreverse
82     ; CHECK: RET_ReallyLR implicit $q0
83     %vec:fpr(<16 x s8>) = G_IMPLICIT_DEF
84     %bitreverse:fpr(<16 x s8>) = G_BITREVERSE %vec
85     $q0 = COPY %bitreverse(<16 x s8>)
86     RET_ReallyLR implicit $q0
88 ...