57 lines · plain
1; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s2; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}3 4; CHECK-LABEL: foo5; CHECK: setp.ne.b16 %[[P:p[0-9]+]], %{{.*}}, 0;6; CHECK: selp.b32 %[[R:r[0-9]+]], 1, 0, %[[P]];7; CHECK: cvt.rn.f32.u32 %r{{.*}}, %[[R]]8define float @foo(i1 %a) {9 %ret = uitofp i1 %a to float10 ret float %ret11}12 13; CHECK-LABEL: foo214; CHECK: setp.ne.b16 %[[P:p[0-9]+]], %{{.*}}, 0;15; CHECK: selp.b32 %[[R:r[0-9]+]], -1, 0, %[[P]];16; CHECK: cvt.rn.f32.s32 %r{{.*}}, %[[R]]17define float @foo2(i1 %a) {18 %ret = sitofp i1 %a to float19 ret float %ret20}21 22; CHECK-LABEL: foo323; CHECK: setp.ne.b16 %[[P:p[0-9]+]], %{{.*}}, 0;24; CHECK: selp.b32 %[[R:r[0-9]+]], 1, 0, %[[P]];25; CHECK: cvt.rn.f64.u32 %rd{{.*}}, %[[R]]26define double @foo3(i1 %a) {27 %ret = uitofp i1 %a to double28 ret double %ret29}30 31; CHECK-LABEL: foo432; CHECK: setp.ne.b16 %[[P:p[0-9]+]], %{{.*}}, 0;33; CHECK: selp.b32 %[[R:r[0-9]+]], -1, 0, %[[P]];34; CHECK: cvt.rn.f64.s32 %rd{{.*}}, %[[R]]35define double @foo4(i1 %a) {36 %ret = sitofp i1 %a to double37 ret double %ret38}39 40; CHECK-LABEL: foo541; CHECK: setp.ne.b16 %[[P:p[0-9]+]], %{{.*}}, 0;42; CHECK: selp.b32 %[[R:r[0-9]+]], 1, 0, %[[P]];43; CHECK: cvt.rn.f16.u32 %{{.*}}, %[[R]]44define half @foo5(i1 %a) {45 %ret = uitofp i1 %a to half46 ret half %ret47}48 49; CHECK-LABEL: foo650; CHECK: setp.ne.b16 %[[P:p[0-9]+]], %{{.*}}, 0;51; CHECK: selp.b32 %[[R:r[0-9]+]], -1, 0, %[[P]];52; CHECK: cvt.rn.f16.s32 %{{.*}}, %[[R]]53define half @foo6(i1 %a) {54 %ret = sitofp i1 %a to half55 ret half %ret56}57