blob: d15cb3298302a7b7b7d2b1f63a9297e7b0da37fe [file] [log] [blame]
Matt Arsenault4c537172014-03-31 18:21:18 +00001; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
Tom Stellarda0150cb2014-04-03 20:19:29 +00002; RUN: llc -march=r600 -mcpu=redwood -show-mc-encoding -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s
Matt Arsenault4c537172014-03-31 18:21:18 +00003
4declare i32 @llvm.AMDGPU.bfe.i32(i32, i32, i32) nounwind readnone
5
6; FUNC-LABEL: @bfe_i32_arg_arg_arg
7; SI: V_BFE_I32
8; EG: BFE_INT
Tom Stellarda0150cb2014-04-03 20:19:29 +00009; EG: encoding: [{{[x0-9a-f]+,[x0-9a-f]+,[x0-9a-f]+,[x0-9a-f]+,[x0-9a-f]+}},0xac
Matt Arsenault4c537172014-03-31 18:21:18 +000010define void @bfe_i32_arg_arg_arg(i32 addrspace(1)* %out, i32 %src0, i32 %src1, i32 %src2) nounwind {
11 %bfe_i32 = call i32 @llvm.AMDGPU.bfe.i32(i32 %src0, i32 %src1, i32 %src1) nounwind readnone
12 store i32 %bfe_i32, i32 addrspace(1)* %out, align 4
13 ret void
14}
15
16; FUNC-LABEL: @bfe_i32_arg_arg_imm
17; SI: V_BFE_I32
18; EG: BFE_INT
19define void @bfe_i32_arg_arg_imm(i32 addrspace(1)* %out, i32 %src0, i32 %src1) nounwind {
20 %bfe_i32 = call i32 @llvm.AMDGPU.bfe.i32(i32 %src0, i32 %src1, i32 123) nounwind readnone
21 store i32 %bfe_i32, i32 addrspace(1)* %out, align 4
22 ret void
23}
24
25; FUNC-LABEL: @bfe_i32_arg_imm_arg
26; SI: V_BFE_I32
27; EG: BFE_INT
28define void @bfe_i32_arg_imm_arg(i32 addrspace(1)* %out, i32 %src0, i32 %src2) nounwind {
29 %bfe_i32 = call i32 @llvm.AMDGPU.bfe.i32(i32 %src0, i32 123, i32 %src2) nounwind readnone
30 store i32 %bfe_i32, i32 addrspace(1)* %out, align 4
31 ret void
32}
33
34; FUNC-LABEL: @bfe_i32_imm_arg_arg
35; SI: V_BFE_I32
36; EG: BFE_INT
37define void @bfe_i32_imm_arg_arg(i32 addrspace(1)* %out, i32 %src1, i32 %src2) nounwind {
38 %bfe_i32 = call i32 @llvm.AMDGPU.bfe.i32(i32 123, i32 %src1, i32 %src2) nounwind readnone
39 store i32 %bfe_i32, i32 addrspace(1)* %out, align 4
40 ret void
41}