| ; 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 } |