1 ; RUN: llc < %s -march=ptx32 | FileCheck %s 2 3 define 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 10 define 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 17 define 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 24 define 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 31 define 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 38 define 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