• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
2
3; CHECK: mulwide16
4define 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
13define 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
22define 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
31define 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}
38