| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6 |
| ; RUN: llc -mtriple=amdgpu9.00 < %s | FileCheck %s |
| ; This tests if disjoint s_or_b32 gets transformed to s_addk_i32 when we can't use s_bitset1_b32 |
| |
| define amdgpu_ps i32 @s_or_b32_i32(i32 inreg %x) { |
| ; CHECK-LABEL: s_or_b32_i32: |
| ; CHECK: ; %bb.0: |
| ; CHECK-NEXT: s_or_b32 s0, s0, 0x101 |
| ; CHECK-NEXT: ; return to shader part epilog |
| %or = or i32 %x, 257 |
| ret i32 %or |
| } |
| |
| define amdgpu_ps i32 @s_or_b32_disjoint_to_s_addk_i32(i32 inreg %x) { |
| ; CHECK-LABEL: s_or_b32_disjoint_to_s_addk_i32: |
| ; CHECK: ; %bb.0: |
| ; CHECK-NEXT: s_addk_i32 s0, 0x101 |
| ; CHECK-NEXT: ; return to shader part epilog |
| %or = or disjoint i32 %x, 257 |
| ret i32 %or |
| } |
| |
| define amdgpu_ps i32 @s_or_b32_to_s_bitset1_b32(i32 inreg %x) { |
| ; CHECK-LABEL: s_or_b32_to_s_bitset1_b32: |
| ; CHECK: ; %bb.0: |
| ; CHECK-NEXT: s_bitset1_b32 s0, 8 |
| ; CHECK-NEXT: ; return to shader part epilog |
| %or = or disjoint i32 %x, 256 |
| ret i32 %or |
| } |
| |