Skip to content

Commit caa7354

Browse files
add intrinsic permlanex16
1 parent 939c410 commit caa7354

File tree

4 files changed

+10
-2
lines changed

4 files changed

+10
-2
lines changed

llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,6 @@ def : SourceOfDivergence<int_amdgcn_live_mask>;
317317
def : SourceOfDivergence<int_amdgcn_ds_swizzle>;
318318
def : SourceOfDivergence<int_amdgcn_ds_ordered_add>;
319319
def : SourceOfDivergence<int_amdgcn_ds_ordered_swap>;
320-
def : SourceOfDivergence<int_amdgcn_permlanex16>;
321320
def : SourceOfDivergence<int_amdgcn_permlane16_var>;
322321
def : SourceOfDivergence<int_amdgcn_permlanex16_var>;
323322
def : SourceOfDivergence<int_amdgcn_mov_dpp>;

llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1427,6 +1427,7 @@ bool GCNTTIImpl::isSpecialUniformIntrinsic(const Instruction &I) const {
14271427
if (const auto *II = dyn_cast<IntrinsicInst>(&I)) {
14281428
switch (II->getIntrinsicID()) {
14291429
case Intrinsic::amdgcn_permlane16:
1430+
case Intrinsic::amdgcn_permlanex16:
14301431
return true;
14311432
default:
14321433
return false;

llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ define amdgpu_kernel void @v_permlane16_b32(ptr addrspace(1) %out, i32 %src0, i3
1414
ret void
1515
}
1616

17-
; CHECK: DIVERGENT: %v = call i32 @llvm.amdgcn.permlanex16.i32(i32 %src0, i32 %src0, i32 %src1, i32 %src2, i1 false, i1 false) #0
17+
; CHECK: ALL VALUES UNIFORM
1818
define amdgpu_kernel void @v_permlanex16_b32(ptr addrspace(1) %out, i32 %src0, i32 %src1, i32 %src2) #0 {
1919
%v = call i32 @llvm.amdgcn.permlanex16.i32(i32 %src0, i32 %src0, i32 %src1, i32 %src2, i1 false, i1 false) #0
2020
store i32 %v, ptr addrspace(1) %out

llvm/test/Analysis/UniformityAnalysis/AMDGPU/uniform_intrinsic.ll

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,13 @@ define amdgpu_kernel void @v_permlane16_b32(ptr addrspace(1) %out, i32 %src0, i3
77
store i32 %v, ptr addrspace(1) %out
88
ret void
99
}
10+
11+
; CHECK: ALL VALUES UNIFORM
12+
define amdgpu_kernel void @v_permlanex16_b32(ptr addrspace(1) %out, i32 %src0, i32 %src1, i32 %src2) #0 {
13+
%v = call i32 @llvm.amdgcn.permlanex16.i32(i32 %src0, i32 %src0, i32 %src1, i32 %src2, i1 false, i1 false) #0
14+
store i32 %v, ptr addrspace(1) %out
15+
ret void
16+
}
17+
1018
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
1119
; CHECK: {{.*}}

0 commit comments

Comments
 (0)