Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/NVPTX/shift-parts.ll @ 77:54457678186b LLVM3.6
LLVM 3.6
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 08 Sep 2014 22:06:00 +0900 |
parents | |
children | afa8332a0e37 |
comparison
equal
deleted
inserted
replaced
34:e874dbf0ad9d | 77:54457678186b |
---|---|
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* %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 | |
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* %amtptr | |
34 %a = load i128* %val | |
35 %val0 = ashr i128 %a, %amt | |
36 store i128 %val0, i128* %val | |
37 ret void | |
38 } |