xref: /llvm-project/llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-bitreverse.mir (revision 87503fa51c8d726510d48e707a7d2885a5b5936c)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-fast | FileCheck %s
3# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=regbankselect %s -verify-machineinstrs -o - -regbankselect-greedy | FileCheck %s
4
5---
6name: bitreverse_i32_s
7legalized: true
8
9body: |
10  bb.0:
11    liveins: $sgpr0
12    ; CHECK-LABEL: name: bitreverse_i32_s
13    ; CHECK: liveins: $sgpr0
14    ; CHECK-NEXT: {{  $}}
15    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0
16    ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:sgpr(s32) = G_BITREVERSE [[COPY]]
17    %0:_(s32) = COPY $sgpr0
18    %1:_(s32) = G_BITREVERSE %0
19...
20
21---
22name: bitreverse_i32_v
23legalized: true
24
25body: |
26  bb.0:
27    liveins: $vgpr0
28    ; CHECK-LABEL: name: bitreverse_i32_v
29    ; CHECK: liveins: $vgpr0
30    ; CHECK-NEXT: {{  $}}
31    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0
32    ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:vgpr(s32) = G_BITREVERSE [[COPY]]
33    %0:_(s32) = COPY $vgpr0
34    %1:_(s32) = G_BITREVERSE %0
35...
36
37---
38name: bitreverse_i64_s
39legalized: true
40
41body: |
42  bb.0:
43    liveins: $sgpr0
44    ; CHECK-LABEL: name: bitreverse_i64_s
45    ; CHECK: liveins: $sgpr0
46    ; CHECK-NEXT: {{  $}}
47    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s64) = COPY $sgpr0_sgpr1
48    ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:sgpr(s64) = G_BITREVERSE [[COPY]]
49    %0:_(s64) = COPY $sgpr0_sgpr1
50    %1:_(s64) = G_BITREVERSE %0
51...
52
53---
54name: bitreverse_i64_v
55legalized: true
56
57body: |
58  bb.0:
59    liveins: $vgpr0
60    ; CHECK-LABEL: name: bitreverse_i64_v
61    ; CHECK: liveins: $vgpr0
62    ; CHECK-NEXT: {{  $}}
63    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1
64    ; CHECK-NEXT: [[UV:%[0-9]+]]:vgpr(s32), [[UV1:%[0-9]+]]:vgpr(s32) = G_UNMERGE_VALUES [[COPY]](s64)
65    ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:vgpr(s32) = G_BITREVERSE [[UV1]]
66    ; CHECK-NEXT: [[BITREVERSE1:%[0-9]+]]:vgpr(s32) = G_BITREVERSE [[UV]]
67    ; CHECK-NEXT: [[MV:%[0-9]+]]:vgpr(s64) = G_MERGE_VALUES [[BITREVERSE]](s32), [[BITREVERSE1]](s32)
68    %0:_(s64) = COPY $vgpr0_vgpr1
69    %1:_(s64) = G_BITREVERSE %0
70...
71