31 lines · plain
1; RUN: llc -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s2; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}3 4; Check saturation conversion is translated when there is forward declaration5; of SPIRV entry.6 7; CHECK: OpDecorate %[[#SAT:]] SaturatedConversion8; CHECK: %[[#SAT]] = OpConvertFToU %[[#]] %[[#]]9 10declare spir_func zeroext i8 @_Z30__spirv_ConvertFToU_Ruchar_satf(float)11 12define spir_func void @forward(float %val, i8 %initval, ptr addrspace(1) %dst) {13entry:14 br label %for.cond15 16for.cond: ; preds = %for.body, %entry17 %new_val.0 = phi i8 [ %initval, %entry ], [ %call1, %for.body ]18 %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.body ]19 %cmp = icmp ult i32 %i.0, 120 br i1 %cmp, label %for.body, label %for.end21 22for.body: ; preds = %for.cond23 %call1 = call spir_func zeroext i8 @_Z30__spirv_ConvertFToU_Ruchar_satf(float noundef %val)24 %inc = add i32 %i.0, 125 br label %for.cond26 27for.end: ; preds = %for.cond28 store i8 %new_val.0, ptr addrspace(1) %dst, align 129 ret void30}31