1; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s 2 3; CHECK: shift_parts_left_128 4define void @shift_parts_left_128(i128* %val, i128* %amtptr) { 5; CHECK: shl.b64 6; CHECK: mov.u32 7; CHECK: sub.s32 8; CHECK: shr.u64 9; CHECK: or.b64 10; CHECK: add.s32 11; CHECK: shl.b64 12; CHECK: setp.gt.s32 13; CHECK: selp.b64 14; CHECK: shl.b64 15 %amt = load i128* %amtptr 16 %a = load i128* %val 17 %val0 = shl i128 %a, %amt 18 store i128 %val0, i128* %val 19 ret void 20} 21 22; CHECK: shift_parts_right_128 23define void @shift_parts_right_128(i128* %val, i128* %amtptr) { 24; CHECK: shr.u64 25; CHECK: sub.s32 26; CHECK: shl.b64 27; CHECK: or.b64 28; CHECK: add.s32 29; CHECK: shr.s64 30; CHECK: setp.gt.s32 31; CHECK: selp.b64 32; CHECK: shr.s64 33 %amt = load i128* %amtptr 34 %a = load i128* %val 35 %val0 = ashr i128 %a, %amt 36 store i128 %val0, i128* %val 37 ret void 38} 39