xref: /aosp_15_r20/external/llvm/test/CodeGen/AMDGPU/sext-in-reg-failure-r600.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; XFAIL: *
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s
3*9880d681SAndroid Build Coastguard Worker; XUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG %s
4*9880d681SAndroid Build Coastguard Worker;
5*9880d681SAndroid Build Coastguard Worker; EG-LABEL: {{^}}sext_in_reg_v2i1_in_v2i32_other_amount:
6*9880d681SAndroid Build Coastguard Worker; EG: MEM_{{.*}} STORE_{{.*}} [[RES:T[0-9]+]]{{\.[XYZW][XYZW]}}, [[ADDR:T[0-9]+.[XYZW]]]
7*9880d681SAndroid Build Coastguard Worker; EG-NOT: BFE
8*9880d681SAndroid Build Coastguard Worker; EG: ADD_INT
9*9880d681SAndroid Build Coastguard Worker; EG: LSHL
10*9880d681SAndroid Build Coastguard Worker; EG: ASHR [[RES]]
11*9880d681SAndroid Build Coastguard Worker; EG: LSHL
12*9880d681SAndroid Build Coastguard Worker; EG: ASHR [[RES]]
13*9880d681SAndroid Build Coastguard Worker; EG: LSHR {{\*?}} [[ADDR]]
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker; Works with the align 2 removed
16*9880d681SAndroid Build Coastguard Workerdefine void @sext_in_reg_v2i1_in_v2i32_other_amount(<2 x i32> addrspace(1)* %out, <2 x i32> %a, <2 x i32> %b) nounwind {
17*9880d681SAndroid Build Coastguard Worker  %c = add <2 x i32> %a, %b
18*9880d681SAndroid Build Coastguard Worker  %x = shl <2 x i32> %c, <i32 6, i32 6>
19*9880d681SAndroid Build Coastguard Worker  %y = ashr <2 x i32> %x, <i32 7, i32 7>
20*9880d681SAndroid Build Coastguard Worker  store <2 x i32> %y, <2 x i32> addrspace(1)* %out, align 2
21*9880d681SAndroid Build Coastguard Worker  ret void
22*9880d681SAndroid Build Coastguard Worker}
23