blob: 68f90e7a73e27951cb1da9aee51d952abe1a60e2 [file]
; 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
}