1; RUN: llc < %s -march=ptx32 | FileCheck %s 2 3define ptx_device i32 @t1(i32 %x, i32 %y) { 4; CHECK: shr.u32 %ret{{[0-9]+}}, %r{{[0-9]+}}, %r{{[0-9]+}} 5 %z = lshr i32 %x, %y 6; CHECK: ret; 7 ret i32 %z 8} 9 10define ptx_device i32 @t2(i32 %x) { 11; CHECK: shr.u32 %ret{{[0-9]+}}, %r{{[0-9]+}}, 3 12 %z = lshr i32 %x, 3 13; CHECK: ret; 14 ret i32 %z 15} 16 17define ptx_device i32 @t3(i32 %x) { 18; CHECK: shr.u32 %ret{{[0-9]+}}, 3, %r{{[0-9]+}} 19 %z = lshr i32 3, %x 20; CHECK: ret; 21 ret i32 %z 22} 23 24define ptx_device i32 @t4(i32 %x, i32 %y) { 25; CHECK: shr.s32 %ret{{[0-9]+}}, %r{{[0-9]+}}, %r{{[0-9]+}} 26 %z = ashr i32 %x, %y 27; CHECK: ret; 28 ret i32 %z 29} 30 31define ptx_device i32 @t5(i32 %x) { 32; CHECK: shr.s32 %ret{{[0-9]+}}, %r{{[0-9]+}}, 3 33 %z = ashr i32 %x, 3 34; CHECK: ret; 35 ret i32 %z 36} 37 38define ptx_device i32 @t6(i32 %x) { 39; CHECK: shr.s32 %ret{{[0-9]+}}, -3, %r{{[0-9]+}} 40 %z = ashr i32 -3, %x 41; CHECK: ret; 42 ret i32 %z 43} 44