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 7 define 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 14 define 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 25 define 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 32 define 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 43 define 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 50 define 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