brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.0 KiB · 66c744f Raw
197 lines · plain
1; RUN: llc -O0 -verify-machineinstrs -mtriple=spirv64-unkown-unknown %s -o - | FileCheck %s2; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unkown-unknown %s -o - -filetype=obj | spirv-val %}3 4; CHECK: OpDecorate %[[#SAT1:]] SaturatedConversion5; CHECK: OpDecorate %[[#SAT2:]] SaturatedConversion6; CHECK: OpDecorate %[[#SAT3:]] SaturatedConversion7; CHECK: OpDecorate %[[#SAT4:]] SaturatedConversion8; CHECK: OpDecorate %[[#SAT5:]] SaturatedConversion9; CHECK: OpDecorate %[[#SAT6:]] SaturatedConversion10; CHECK: OpDecorate %[[#SAT7:]] SaturatedConversion11; CHECK: OpDecorate %[[#SAT8:]] SaturatedConversion12; CHECK: OpDecorate %[[#SAT9:]] SaturatedConversion13; CHECK: OpDecorate %[[#SAT10:]] SaturatedConversion14; CHECK: OpDecorate %[[#SAT11:]] SaturatedConversion15; CHECK: OpDecorate %[[#SAT12:]] SaturatedConversion16; CHECK: OpDecorate %[[#SAT13:]] SaturatedConversion17; CHECK: OpDecorate %[[#SAT14:]] SaturatedConversion18; CHECK: OpDecorate %[[#SAT15:]] SaturatedConversion19; CHECK: OpDecorate %[[#SAT16:]] SaturatedConversion20 21 22; CHECK: %[[#SAT1]] = OpConvertFToS %[[#]] %[[#]]23define spir_kernel void @testfunction_float_to_signed_i8(float %input) {24entry:25   %ptr = alloca i826   %signed_int = call i8 @llvm.fptosi.sat.i8.f32(float %input)27   store i8 %signed_int, i8* %ptr28   ret void29 30}31declare i8 @llvm.fptosi.sat.i8.f32(float)32 33 34; CHECK: %[[#SAT2]] = OpConvertFToS %[[#]] %[[#]]35define spir_kernel void @testfunction_float_to_signed_i16(float %input) {36entry:37   %ptr = alloca i1638   %signed_int = call i16 @llvm.fptosi.sat.i16.f32(float %input)39   store i16 %signed_int, i16* %ptr40   ret void41 42}43declare i16 @llvm.fptosi.sat.i16.f32(float)44 45; CHECK: %[[#SAT3]] = OpConvertFToS %[[#]] %[[#]]46define spir_kernel void @testfunction_float_to_signed_i32(float %input) {47entry:48   %ptr = alloca i3249   %signed_int = call i32 @llvm.fptosi.sat.i32.f32(float %input)50   store i32 %signed_int, i32* %ptr51   ret void52 53}54declare i32 @llvm.fptosi.sat.i32.f32(float)55 56 57; CHECK: %[[#SAT4]] = OpConvertFToS %[[#]] %[[#]]58define spir_kernel void @testfunction_float_to_signed_i64(float %input) {59entry:60   %ptr = alloca i6461   %signed_int = call i64 @llvm.fptosi.sat.i64.f32(float %input)62   store i64 %signed_int, i64* %ptr63   ret void64}65declare i64 @llvm.fptosi.sat.i64.f32(float)66 67 68; CHECK: %[[#SAT5]] = OpConvertFToS %[[#]] %[[#]]69define spir_kernel void @testfunction_double_to_signed_i8(double %input) {70entry:71   %ptr = alloca i872   %signed_int = call i8 @llvm.fptosi.sat.i8.f64(double %input)73   store i8 %signed_int, i8* %ptr74   ret void75}76declare i8 @llvm.fptosi.sat.i8.f64(double)77 78 79; CHECK: %[[#SAT6]] = OpConvertFToS %[[#]] %[[#]]80define spir_kernel void @testfunction_double_to_signed_i16(double %input) {81entry:82   %ptr = alloca i1683   %signed_int = call i16 @llvm.fptosi.sat.i16.f64(double %input)84   store i16 %signed_int, i16* %ptr85   ret void86}87declare i16 @llvm.fptosi.sat.i16.f64(double)88 89 90; CHECK: %[[#SAT7]] = OpConvertFToS %[[#]] %[[#]]91define spir_kernel void @testfunction_double_to_signed_i32(double %input) {92entry:93   %ptr = alloca i3294   %signed_int = call i32 @llvm.fptosi.sat.i32.f64(double %input)95   store i32 %signed_int, i32* %ptr96   ret void97}98declare i32 @llvm.fptosi.sat.i32.f64(double)99 100 101; CHECK: %[[#SAT8]] = OpConvertFToS %[[#]] %[[#]]102define spir_kernel void @testfunction_double_to_signed_i64(double %input) {103entry:104   %ptr = alloca i64105   %signed_int = call i64 @llvm.fptosi.sat.i64.f64(double %input)106   store i64 %signed_int, i64* %ptr107   ret void108}109declare i64 @llvm.fptosi.sat.i64.f64(double)110 111; CHECK: %[[#SAT9]] = OpConvertFToU %[[#]] %[[#]]112define spir_kernel void @testfunction_float_to_unsigned_i8(float %input) {113entry:114   %ptr = alloca i8115   %unsigned_int = call i8 @llvm.fptoui.sat.i8.f32(float %input)116   store i8 %unsigned_int, i8* %ptr117   ret void118}119declare i8 @llvm.fptoui.sat.i8.f32(float)120 121 122; CHECK: %[[#SAT10]] = OpConvertFToU %[[#]] %[[#]]123define spir_kernel void @testfunction_float_to_unsigned_i16(float %input) {124entry:125   %ptr = alloca i16126   %unsigned_int = call i16 @llvm.fptoui.sat.i16.f32(float %input)127   store i16 %unsigned_int, i16* %ptr128   ret void129}130declare i16 @llvm.fptoui.sat.i16.f32(float)131 132 133; CHECK: %[[#SAT11]] = OpConvertFToU %[[#]] %[[#]]134define spir_kernel void @testfunction_float_to_unsigned_i32(float %input) {135entry:136   %ptr = alloca i32137   %unsigned_int = call i32 @llvm.fptoui.sat.i32.f32(float %input)138   store i32 %unsigned_int, i32* %ptr139   ret void140}141declare i32 @llvm.fptoui.sat.i32.f32(float)142 143 144; CHECK: %[[#SAT12]] = OpConvertFToU %[[#]] %[[#]]145define spir_kernel void @testfunction_float_to_unsigned_i64(float %input) {146entry:147   %ptr = alloca i64148   %unsigned_int = call i64 @llvm.fptoui.sat.i64.f32(float %input)149   store i64 %unsigned_int, i64* %ptr150   ret void151}152declare i64 @llvm.fptoui.sat.i64.f32(float)153 154 155; CHECK: %[[#SAT13]] = OpConvertFToU %[[#]] %[[#]]156define spir_kernel void @testfunction_double_to_unsigned_i8(double %input) {157entry:158   %ptr = alloca i8159   %unsigned_int = call i8 @llvm.fptoui.sat.i8.f64(double %input)160   store i8 %unsigned_int, i8* %ptr161   ret void162}163declare i8 @llvm.fptoui.sat.i8.f64(double)164 165 166; CHECK: %[[#SAT14]] = OpConvertFToU %[[#]] %[[#]]167define spir_kernel void @testfunction_double_to_unsigned_i16(double %input) {168entry:169   %ptr = alloca i16170   %unsigned_int = call i16 @llvm.fptoui.sat.i16.f64(double %input)171   store i16 %unsigned_int, i16* %ptr172   ret void173}174declare i16 @llvm.fptoui.sat.i16.f64(double)175 176 177; CHECK: %[[#SAT15]] = OpConvertFToU %[[#]] %[[#]]178define spir_kernel void @testfunction_double_to_unsigned_i32(double %input) {179entry:180   %ptr = alloca i32181   %unsigned_int = call i32 @llvm.fptoui.sat.i32.f64(double %input)182   store i32 %unsigned_int, i32* %ptr183   ret void184}185declare i32 @llvm.fptoui.sat.i32.f64(double)186 187 188; CHECK: %[[#SAT16]] = OpConvertFToU %[[#]] %[[#]]189define spir_kernel void @testfunction_double_to_unsigned_i64(double %input) {190entry:191   %ptr = alloca i64192   %unsigned_int = call i64 @llvm.fptoui.sat.i64.f64(double %input)193   store i64 %unsigned_int, i64* %ptr194   ret void195}196declare i64 @llvm.fptoui.sat.i64.f64(double)197