NVPTX: support direct f16 <-> f64 conversions via intrinsics.
[oota-llvm.git] / test / CodeGen / NVPTX / mulwide.ll
1 ; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
2
3 ; CHECK: mulwide16
4 define i32 @mulwide16(i16 %a, i16 %b) {
5 ; CHECK: mul.wide.s16
6   %val0 = sext i16 %a to i32
7   %val1 = sext i16 %b to i32
8   %val2 = mul i32 %val0, %val1
9   ret i32 %val2
10 }
11
12 ; CHECK: mulwideu16
13 define i32 @mulwideu16(i16 %a, i16 %b) {
14 ; CHECK: mul.wide.u16
15   %val0 = zext i16 %a to i32
16   %val1 = zext i16 %b to i32
17   %val2 = mul i32 %val0, %val1
18   ret i32 %val2
19 }
20
21 ; CHECK: mulwide32
22 define i64 @mulwide32(i32 %a, i32 %b) {
23 ; CHECK: mul.wide.s32
24   %val0 = sext i32 %a to i64
25   %val1 = sext i32 %b to i64
26   %val2 = mul i64 %val0, %val1
27   ret i64 %val2
28 }
29
30 ; CHECK: mulwideu32
31 define i64 @mulwideu32(i32 %a, i32 %b) {
32 ; CHECK: mul.wide.u32
33   %val0 = zext i32 %a to i64
34   %val1 = zext i32 %b to i64
35   %val2 = mul i64 %val0, %val1
36   ret i64 %val2
37 }