Reland [OffloadBundler] Compress bundles over 4GB (#122307)
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / shrink-insts-scalar-bit-ops.mir
bloba8deda7ad95078f91b00880b62cbe986c36827bc
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -run-pass=si-shrink-instructions -verify-machineinstrs -o - %s | FileCheck %s
3 # RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -passes=si-shrink-instructions -verify-machineinstrs -o - %s | FileCheck %s
5 ---
6 name:            undef_and_operand_to_bitset0
7 tracksRegLiveness: true
8 body:             |
9   bb.0:
10     ; CHECK-LABEL: name: undef_and_operand_to_bitset0
11     ; CHECK: renamable $sgpr4 = S_BITSET0_B32 31, undef $sgpr4, implicit-def dead $scc
12     ; CHECK-NEXT: S_ENDPGM 0, implicit $sgpr4
13     renamable $sgpr4 = S_AND_B32 undef renamable $sgpr4, 2147483647, implicit-def dead $scc
14     S_ENDPGM 0, implicit $sgpr4
16 ...
18 ---
19 name:            undef_or_operand_to_orn2
20 tracksRegLiveness: true
21 body:             |
22   bb.0:
23     ; CHECK-LABEL: name: undef_or_operand_to_orn2
24     ; CHECK: renamable $sgpr4 = S_ORN2_B32 undef renamable $sgpr4, 16, implicit-def dead $scc
25     ; CHECK-NEXT: S_ENDPGM 0, implicit $sgpr4
26     renamable $sgpr4 = S_OR_B32 undef renamable $sgpr4, -17, implicit-def dead $scc
27     S_ENDPGM 0, implicit $sgpr4
29 ...
31 ---
32 name:            undef_xor_operand_to_orn2
33 tracksRegLiveness: true
34 body:             |
35   bb.0:
36     ; CHECK-LABEL: name: undef_xor_operand_to_orn2
37     ; CHECK: renamable $sgpr4 = S_XNOR_B32 undef renamable $sgpr4, 16, implicit-def dead $scc
38     ; CHECK-NEXT: S_ENDPGM 0, implicit $sgpr4
39     renamable $sgpr4 = S_XOR_B32 undef renamable $sgpr4, -17, implicit-def dead $scc
40     S_ENDPGM 0, implicit $sgpr4
42 ...
44 ---
45 name:            kill_and_operand_to_bitset0
46 tracksRegLiveness: true
47 body:             |
48   bb.0:
49     liveins: $sgpr4
50     ; CHECK-LABEL: name: kill_and_operand_to_bitset0
51     ; CHECK: liveins: $sgpr4
52     ; CHECK-NEXT: {{  $}}
53     ; CHECK-NEXT: renamable $sgpr4 = S_BITSET0_B32 31, killed $sgpr4, implicit-def dead $scc
54     ; CHECK-NEXT: S_ENDPGM 0, implicit $sgpr4
55     renamable $sgpr4 = S_AND_B32 killed renamable $sgpr4, 2147483647, implicit-def dead $scc
56     S_ENDPGM 0, implicit $sgpr4
58 ...
60 # Make sure we don't clobber the live value in scc by replacing the
61 # s_mov_b32 imm with s_not_b32 ~imm
62 ---
63 name:            scalar_immediate_bitwise_not_live_scc
64 tracksRegLiveness: true
65 body:             |
66   bb.0:
67     liveins: $sgpr4, $sgpr5
68     ; CHECK-LABEL: name: scalar_immediate_bitwise_not_live_scc
69     ; CHECK: liveins: $sgpr4, $sgpr5
70     ; CHECK-NEXT: {{  $}}
71     ; CHECK-NEXT: S_CMP_EQ_U32 killed renamable $sgpr4, killed renamable $sgpr5, implicit-def $scc
72     ; CHECK-NEXT: $sgpr6 = S_MOV_B32 -1065353217
73     ; CHECK-NEXT: $sgpr7 = S_CSELECT_B32 1, 2, implicit $scc
74     ; CHECK-NEXT: S_ENDPGM 0, implicit $sgpr6
75     S_CMP_EQ_U32 killed renamable $sgpr4, killed renamable $sgpr5, implicit-def $scc
76     $sgpr6 = S_MOV_B32 -1065353217
77     $sgpr7 = S_CSELECT_B32 1, 2, implicit $scc
78     S_ENDPGM 0, implicit $sgpr6
80 ...