blob: 9819e4be6f7e06abacc18cb12436ba6bd9b47035 [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
; RUN: opt < %s -passes=instsimplify -S -mtriple=nvptx64-nvidia-cuda | FileCheck %s
declare { i32, i1 } @llvm.nvvm.shfl.idx.i32p(i32, i32, i32)
; Test that dead shuffle instructions are eliminated.
define void @test_dead_shfl_const_zero(i32 %lane) #0 {
; CHECK-LABEL: define void @test_dead_shfl_const_zero(
; CHECK-SAME: i32 [[LANE:%.*]]) #[[ATTR1:[0-9]+]] {
; CHECK-NEXT: ret void
;
%r0 = call { i32, i1 } @llvm.nvvm.shfl.idx.i32p(i32 0, i32 %lane, i32 31)
%r1 = call { i32, i1 } @llvm.nvvm.shfl.idx.i32p(i32 0, i32 %lane, i32 31)
%r2 = call { i32, i1 } @llvm.nvvm.shfl.idx.i32p(i32 0, i32 %lane, i32 31)
%r3 = call { i32, i1 } @llvm.nvvm.shfl.idx.i32p(i32 0, i32 %lane, i32 31)
ret void
}
attributes #0 = { convergent }