92 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=nvptx -mcpu=sm_20 | FileCheck %s3; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s4; RUN: %if ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}5; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}6 7;; Integer conversions happen inplicitly by loading/storing the proper types8 9; i1610 11define i16 @cvt_i16_i32(i32 %x) {12; CHECK-LABEL: cvt_i16_i32(13; CHECK: {14; CHECK-NEXT: .reg .b32 %r<2>;15; CHECK-EMPTY:16; CHECK-NEXT: // %bb.0:17; CHECK-NEXT: ld.param.b32 %r1, [cvt_i16_i32_param_0];18; CHECK-NEXT: st.param.b32 [func_retval0], %r1;19; CHECK-NEXT: ret;20 %a = trunc i32 %x to i1621 ret i16 %a22}23 24define i16 @cvt_i16_i64(i64 %x) {25; CHECK-LABEL: cvt_i16_i64(26; CHECK: {27; CHECK-NEXT: .reg .b32 %r<2>;28; CHECK-EMPTY:29; CHECK-NEXT: // %bb.0:30; CHECK-NEXT: ld.param.b16 %r1, [cvt_i16_i64_param_0];31; CHECK-NEXT: st.param.b32 [func_retval0], %r1;32; CHECK-NEXT: ret;33 %a = trunc i64 %x to i1634 ret i16 %a35}36 37; i3238 39define i32 @cvt_i32_i16(i16 %x) {40; CHECK-LABEL: cvt_i32_i16(41; CHECK: {42; CHECK-NEXT: .reg .b32 %r<2>;43; CHECK-EMPTY:44; CHECK-NEXT: // %bb.0:45; CHECK-NEXT: ld.param.b16 %r1, [cvt_i32_i16_param_0];46; CHECK-NEXT: st.param.b32 [func_retval0], %r1;47; CHECK-NEXT: ret;48 %a = zext i16 %x to i3249 ret i32 %a50}51 52define i32 @cvt_i32_i64(i64 %x) {53; CHECK-LABEL: cvt_i32_i64(54; CHECK: {55; CHECK-NEXT: .reg .b64 %rd<2>;56; CHECK-EMPTY:57; CHECK-NEXT: // %bb.0:58; CHECK-NEXT: ld.param.b64 %rd1, [cvt_i32_i64_param_0];59; CHECK-NEXT: st.param.b32 [func_retval0], %rd1;60; CHECK-NEXT: ret;61 %a = trunc i64 %x to i3262 ret i32 %a63}64 65; i6466 67define i64 @cvt_i64_i16(i16 %x) {68; CHECK-LABEL: cvt_i64_i16(69; CHECK: {70; CHECK-NEXT: .reg .b64 %rd<2>;71; CHECK-EMPTY:72; CHECK-NEXT: // %bb.0:73; CHECK-NEXT: ld.param.b16 %rd1, [cvt_i64_i16_param_0];74; CHECK-NEXT: st.param.b64 [func_retval0], %rd1;75; CHECK-NEXT: ret;76 %a = zext i16 %x to i6477 ret i64 %a78}79 80define i64 @cvt_i64_i32(i32 %x) {81; CHECK-LABEL: cvt_i64_i32(82; CHECK: {83; CHECK-NEXT: .reg .b64 %rd<2>;84; CHECK-EMPTY:85; CHECK-NEXT: // %bb.0:86; CHECK-NEXT: ld.param.b32 %rd1, [cvt_i64_i32_param_0];87; CHECK-NEXT: st.param.b64 [func_retval0], %rd1;88; CHECK-NEXT: ret;89 %a = zext i32 %x to i6490 ret i64 %a91}92