67 lines · plain
1; Adapted from https://github.com/KhronosGroup/SPIRV-LLVM-Translator/tree/main/test/llvm-intrinsics2 3; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s4; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}5 6; CHECK: OpFOrdEqual7; CHECK: OpFOrdGreaterThan8; CHECK: OpFOrdGreaterThanEqual9; CHECK: OpFOrdLessThan10; CHECK: OpFOrdLessThanEqual11; CHECK: OpFOrdNotEqual12; CHECK: OpOrdered13; CHECK: OpFUnordEqual14; CHECK: OpFUnordGreaterThan15; CHECK: OpFUnordGreaterThanEqual16; CHECK: OpFUnordLessThan17; CHECK: OpFUnordLessThanEqual18; CHECK: OpFUnordNotEqual19; CHECK: OpUnordered20 21; Function Attrs: norecurse nounwind strictfp22define dso_local spir_kernel void @test(float %a) local_unnamed_addr #0 !kernel_arg_addr_space !5 !kernel_arg_access_qual !6 !kernel_arg_type !7 !kernel_arg_base_type !7 !kernel_arg_type_qual !8 !kernel_arg_buffer_location !9 {23entry:24 %cmp = tail call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %a, metadata !"oeq", metadata !"fpexcept.strict") #225 %cmp1 = tail call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %a, metadata !"ogt", metadata !"fpexcept.strict") #226 %cmp2 = tail call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %a, metadata !"oge", metadata !"fpexcept.strict") #227 %cmp3 = tail call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %a, metadata !"olt", metadata !"fpexcept.strict") #228 %cmp4 = tail call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %a, metadata !"ole", metadata !"fpexcept.strict") #229 %cmp5 = tail call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %a, metadata !"one", metadata !"fpexcept.strict") #230 %cmp6 = tail call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %a, metadata !"ord", metadata !"fpexcept.strict") #231 %cmp7 = tail call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %a, metadata !"ueq", metadata !"fpexcept.strict") #232 %cmp8 = tail call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %a, metadata !"ugt", metadata !"fpexcept.strict") #233 %cmp9 = tail call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %a, metadata !"uge", metadata !"fpexcept.strict") #234 %cmp10 = tail call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %a, metadata !"ult", metadata !"fpexcept.strict") #235 %cmp11 = tail call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %a, metadata !"ule", metadata !"fpexcept.strict") #236 %cmp12 = tail call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %a, metadata !"une", metadata !"fpexcept.strict") #237 %cmp13 = tail call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %a, metadata !"uno", metadata !"fpexcept.strict") #238 ret void39}40 41; Function Attrs: inaccessiblememonly nounwind willreturn42declare i1 @llvm.experimental.constrained.fcmps.f32(float, float, metadata, metadata) #143 44; Function Attrs: inaccessiblememonly nounwind willreturn45declare i1 @llvm.experimental.constrained.fcmp.f32(float, float, metadata, metadata) #146 47attributes #0 = { norecurse nounwind strictfp "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "sycl-module-id"="test2.cl" "uniform-work-group-size"="true" "unsafe-fp-math"="false" "use-soft-float"="false" }48attributes #1 = { inaccessiblememonly nounwind willreturn }49attributes #2 = { strictfp }50 51!llvm.module.flags = !{!0}52!opencl.ocl.version = !{!1}53!opencl.spir.version = !{!2, !2}54!spirv.Source = !{!3}55!llvm.ident = !{!4}56 57!0 = !{i32 1, !"wchar_size", i32 4}58!1 = !{i32 1, i32 0}59!2 = !{i32 1, i32 2}60!3 = !{i32 4, i32 100000}61!4 = !{!"clang version 12.0.0 (https://github.com/c199914007/llvm.git f0c85a8adeb49638c01eee1451aa9b35462cbfd5)"}62!5 = !{i32 0}63!6 = !{!"none"}64!7 = !{!"float"}65!8 = !{!""}66!9 = !{i32 -1}67