[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AMDGPU / sext-in-reg-failure-r600.ll
blob7ac4e1d9fe4b086b8a59f51a95eb9b7d668a9b63
1 ; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG %s
3 ; EG-LABEL: {{^}}sext_in_reg_v2i1_in_v2i32_other_amount:
4 ; EG: MEM_{{.*}} MSKOR [[RES:T[0-9]+]]{{\.[XYZW][XYZW]}}, [[ADDR:T[0-9]+.[XYZW]]]
5 ; EG-NOT: BFE
6 ; EG: ADD_INT
7 ; EG: LSHL
8 ; EG: ASHR
9 ; EG: LSHL
10 ; EG: ASHR
11 ; EG: LSHR {{\*?}} [[ADDR]]
13 ; Works with the align 2 removed
14 define amdgpu_kernel void @sext_in_reg_v2i1_in_v2i32_other_amount(<2 x i32> addrspace(1)* %out, <2 x i32> %a, <2 x i32> %b) nounwind {
15   %c = add <2 x i32> %a, %b
16   %x = shl <2 x i32> %c, <i32 6, i32 6>
17   %y = ashr <2 x i32> %x, <i32 7, i32 7>
18   store <2 x i32> %y, <2 x i32> addrspace(1)* %out, align 2
19   ret void