[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / divergence-driven-bfe-isel.ll
blob6b1f34e72dac30dc39360e6c4500a2656ebcc94b
1 ; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s
3 ; GCN-LABEL: @bfe_uniform
4 ; GCN: s_bfe_u32 s{{[0-9]+}}, s{{[0-9]+}}, 0x40010
5 define amdgpu_kernel void @bfe_uniform(i32 %val, ptr addrspace(1) %out) {
6   %hibits = lshr i32 %val, 16
7   %masked = and i32 %hibits, 15
8   store i32 %masked, ptr addrspace(1) %out
9   ret void
12 ; GCN-LABEL: @bfe_divergent
13 ; GCN: v_bfe_u32 v{{[0-9]+}}, v{{[0-9]+}}, 16, 4
14 define amdgpu_kernel void @bfe_divergent(i32 %val, ptr addrspace(1) %out) {
15   %tid = call i32 @llvm.amdgcn.workitem.id.x()
16   %divergent = add i32 %val, %tid
17   %hibits = lshr i32 %divergent, 16
18   %masked = and i32 %hibits, 15
19   store i32 %masked, ptr addrspace(1) %out
20   ret void
24 declare i32 @llvm.amdgcn.workitem.id.x()