Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / shrink-insts-scalar-bit-ops.mir
blobeb7b9b619ee00699c50ede65b15f4482529235e6
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
4 ---
5 name:            undef_and_operand_to_bitset0
6 tracksRegLiveness: true
7 body:             |
8   bb.0:
9     ; CHECK-LABEL: name: undef_and_operand_to_bitset0
10     ; CHECK: renamable $sgpr4 = S_BITSET0_B32 31, undef $sgpr4, implicit-def dead $scc
11     ; CHECK-NEXT: S_ENDPGM 0, implicit $sgpr4
12     renamable $sgpr4 = S_AND_B32 undef renamable $sgpr4, 2147483647, implicit-def dead $scc
13     S_ENDPGM 0, implicit $sgpr4
15 ...
17 ---
18 name:            undef_or_operand_to_orn2
19 tracksRegLiveness: true
20 body:             |
21   bb.0:
22     ; CHECK-LABEL: name: undef_or_operand_to_orn2
23     ; CHECK: renamable $sgpr4 = S_ORN2_B32 undef renamable $sgpr4, 16, implicit-def dead $scc
24     ; CHECK-NEXT: S_ENDPGM 0, implicit $sgpr4
25     renamable $sgpr4 = S_OR_B32 undef renamable $sgpr4, -17, implicit-def dead $scc
26     S_ENDPGM 0, implicit $sgpr4
28 ...
30 ---
31 name:            undef_xor_operand_to_orn2
32 tracksRegLiveness: true
33 body:             |
34   bb.0:
35     ; CHECK-LABEL: name: undef_xor_operand_to_orn2
36     ; CHECK: renamable $sgpr4 = S_XNOR_B32 undef renamable $sgpr4, 16, implicit-def dead $scc
37     ; CHECK-NEXT: S_ENDPGM 0, implicit $sgpr4
38     renamable $sgpr4 = S_XOR_B32 undef renamable $sgpr4, -17, implicit-def dead $scc
39     S_ENDPGM 0, implicit $sgpr4
41 ...
43 ---
44 name:            kill_and_operand_to_bitset0
45 tracksRegLiveness: true
46 body:             |
47   bb.0:
48     liveins: $sgpr4
49     ; CHECK-LABEL: name: kill_and_operand_to_bitset0
50     ; CHECK: liveins: $sgpr4
51     ; CHECK-NEXT: {{  $}}
52     ; CHECK-NEXT: renamable $sgpr4 = S_BITSET0_B32 31, killed $sgpr4, implicit-def dead $scc
53     ; CHECK-NEXT: S_ENDPGM 0, implicit $sgpr4
54     renamable $sgpr4 = S_AND_B32 killed renamable $sgpr4, 2147483647, implicit-def dead $scc
55     S_ENDPGM 0, implicit $sgpr4
57 ...
59 # Make sure we don't clobber the live value in scc by replacing the
60 # s_mov_b32 imm with s_not_b32 ~imm
61 ---
62 name:            scalar_immediate_bitwise_not_live_scc
63 tracksRegLiveness: true
64 body:             |
65   bb.0:
66     liveins: $sgpr4, $sgpr5
67     ; CHECK-LABEL: name: scalar_immediate_bitwise_not_live_scc
68     ; CHECK: liveins: $sgpr4, $sgpr5
69     ; CHECK-NEXT: {{  $}}
70     ; CHECK-NEXT: S_CMP_EQ_U32 killed renamable $sgpr4, killed renamable $sgpr5, implicit-def $scc
71     ; CHECK-NEXT: $sgpr6 = S_MOV_B32 -1065353217
72     ; CHECK-NEXT: $sgpr7 = S_CSELECT_B32 1, 2, implicit $scc
73     ; CHECK-NEXT: S_ENDPGM 0, implicit $sgpr6
74     S_CMP_EQ_U32 killed renamable $sgpr4, killed renamable $sgpr5, implicit-def $scc
75     $sgpr6 = S_MOV_B32 -1065353217
76     $sgpr7 = S_CSELECT_B32 1, 2, implicit $scc
77     S_ENDPGM 0, implicit $sgpr6
79 ...