Home | History | Annotate | Download | only in NVPTX
      1 ; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
      2 
      3 ; CHECK: shift_parts_left_128
      4 define 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, i128* %amtptr
     16   %a = load i128, 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
     23 define 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, i128* %amtptr
     34   %a = load i128, i128* %val
     35   %val0 = ashr i128 %a, %amt
     36   store i128 %val0, i128* %val
     37   ret void
     38 }
     39