blob: 7ac4e1d9fe4b086b8a59f51a95eb9b7d668a9b63 [file] [log] [blame]
Matt Arsenaultb50eb8d2016-08-31 21:52:27 +00001; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG %s
Matt Arsenault8af47a02016-07-01 22:55:55 +00002;
3; EG-LABEL: {{^}}sext_in_reg_v2i1_in_v2i32_other_amount:
Matt Arsenaultb50eb8d2016-08-31 21:52:27 +00004; EG: MEM_{{.*}} MSKOR [[RES:T[0-9]+]]{{\.[XYZW][XYZW]}}, [[ADDR:T[0-9]+.[XYZW]]]
Matt Arsenault8af47a02016-07-01 22:55:55 +00005; EG-NOT: BFE
6; EG: ADD_INT
7; EG: LSHL
Matt Arsenaultb50eb8d2016-08-31 21:52:27 +00008; EG: ASHR
Matt Arsenault8af47a02016-07-01 22:55:55 +00009; EG: LSHL
Matt Arsenaultb50eb8d2016-08-31 21:52:27 +000010; EG: ASHR
Matt Arsenault8af47a02016-07-01 22:55:55 +000011; EG: LSHR {{\*?}} [[ADDR]]
12
13; Works with the align 2 removed
Matt Arsenault3dbeefa2017-03-21 21:39:51 +000014define 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 {
Matt Arsenault8af47a02016-07-01 22:55:55 +000015 %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
20}