• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -march=nvptx -mcpu=sm_10 | FileCheck %s
2; RUN: llc < %s -march=nvptx64 -mcpu=sm_10 | FileCheck %s
3
4
5; i16
6
7define i16 @cvt_i16_i32(i32 %x) {
8; CHECK: cvt.u16.u32 %rs{{[0-9]+}}, %r{{[0-9]+}}
9; CHECK: ret
10  %a = trunc i32 %x to i16
11  ret i16 %a
12}
13
14define i16 @cvt_i16_i64(i64 %x) {
15; CHECK: cvt.u16.u64 %rs{{[0-9]+}}, %rl{{[0-9]+}}
16; CHECK: ret
17  %a = trunc i64 %x to i16
18  ret i16 %a
19}
20
21
22
23; i32
24
25define i32 @cvt_i32_i16(i16 %x) {
26; CHECK: cvt.u32.u16 %r{{[0-9]+}}, %rs{{[0-9]+}}
27; CHECK: ret
28  %a = zext i16 %x to i32
29  ret i32 %a
30}
31
32define i32 @cvt_i32_i64(i64 %x) {
33; CHECK: cvt.u32.u64 %r{{[0-9]+}}, %rl{{[0-9]+}}
34; CHECK: ret
35  %a = trunc i64 %x to i32
36  ret i32 %a
37}
38
39
40
41; i64
42
43define i64 @cvt_i64_i16(i16 %x) {
44; CHECK: cvt.u64.u16 %rl{{[0-9]+}}, %rs{{[0-9]+}}
45; CHECK: ret
46  %a = zext i16 %x to i64
47  ret i64 %a
48}
49
50define i64 @cvt_i64_i32(i32 %x) {
51; CHECK: cvt.u64.u32 %rl{{[0-9]+}}, %r{{[0-9]+}}
52; CHECK: ret
53  %a = zext i32 %x to i64
54  ret i64 %a
55}
56