diff options
| author | Michael Kruse <llvm-project@meinersbur.de> | 2025-01-03 10:22:51 +0100 |
|---|---|---|
| committer | Michael Kruse <llvm-project@meinersbur.de> | 2025-01-03 10:22:51 +0100 |
| commit | 38500d63e14ce340236840f60d356cdefb56a52c (patch) | |
| tree | 17edbec446ce9b50d2f215a483b83afb293a635d /llvm/test/CodeGen/SPIRV/transcoding | |
| parent | 1a3d5daaef7a6a63448a497da3eff7fc9e23df26 (diff) | |
| parent | 27f30029741ecf023baece7b3dde1ff9011ffefc (diff) | |
Merge branch 'main' into users/meinersbur/flang_runtime_split-headersusers/meinersbur/flang_runtime_split-headers
Diffstat (limited to 'llvm/test/CodeGen/SPIRV/transcoding')
7 files changed, 36 insertions, 24 deletions
diff --git a/llvm/test/CodeGen/SPIRV/transcoding/OpBitReverse-subbyte.ll b/llvm/test/CodeGen/SPIRV/transcoding/OpBitReverse-subbyte.ll index fe71ce862dfc..481bad9a26b7 100644 --- a/llvm/test/CodeGen/SPIRV/transcoding/OpBitReverse-subbyte.ll +++ b/llvm/test/CodeGen/SPIRV/transcoding/OpBitReverse-subbyte.ll @@ -7,6 +7,9 @@ ; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s --spirv-ext=+SPV_KHR_bit_instructions -o - | FileCheck %s --check-prefix=CHECK-SPIRV ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s --spirv-ext=+SPV_KHR_bit_instructions -o - -filetype=obj | spirv-val %} +; TODO: This test currently fails with LLVM_ENABLE_EXPENSIVE_CHECKS enabled +; XFAIL: expensive_checks + ; CHECK-SPIRV: OpCapability BitInstructions ; CHECK-SPIRV: OpExtension "SPV_KHR_bit_instructions" ; CHECK-SPIRV: %[[#CharTy:]] = OpTypeInt 8 0 diff --git a/llvm/test/CodeGen/SPIRV/transcoding/OpBitReverse_i2.ll b/llvm/test/CodeGen/SPIRV/transcoding/OpBitReverse_i2.ll index 1840ad5411f4..9d6a5e0dc0d3 100644 --- a/llvm/test/CodeGen/SPIRV/transcoding/OpBitReverse_i2.ll +++ b/llvm/test/CodeGen/SPIRV/transcoding/OpBitReverse_i2.ll @@ -7,6 +7,9 @@ ; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s --spirv-ext=+SPV_KHR_bit_instructions -o - | FileCheck %s --check-prefix=CHECK-SPIRV ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s --spirv-ext=+SPV_KHR_bit_instructions -o - -filetype=obj | spirv-val %} +; TODO: This test currently fails with LLVM_ENABLE_EXPENSIVE_CHECKS enabled +; XFAIL: expensive_checks + ; CHECK-SPIRV: OpCapability BitInstructions ; CHECK-SPIRV: OpExtension "SPV_KHR_bit_instructions" ; CHECK-SPIRV: %[[#CharTy:]] = OpTypeInt 8 0 diff --git a/llvm/test/CodeGen/SPIRV/transcoding/OpConstantSampler.ll b/llvm/test/CodeGen/SPIRV/transcoding/OpConstantSampler.ll index 7e0d13490fcf..0169cc8b8fd8 100644 --- a/llvm/test/CodeGen/SPIRV/transcoding/OpConstantSampler.ll +++ b/llvm/test/CodeGen/SPIRV/transcoding/OpConstantSampler.ll @@ -12,8 +12,8 @@ ; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV -; CHECK-SPIRV: %[[#SamplerID0:]] = OpConstantSampler %[[#]] Repeat 1 Nearest -; CHECK-SPIRV: %[[#SamplerID1:]] = OpConstantSampler %[[#]] None 0 Nearest +; CHECK-SPIRV-DAG: %[[#SamplerID0:]] = OpConstantSampler %[[#]] Repeat 1 Nearest +; CHECK-SPIRV-DAG: %[[#SamplerID1:]] = OpConstantSampler %[[#]] None 0 Nearest ; CHECK-SPIRV: %[[#]] = OpSampledImage %[[#]] %[[#]] %[[#SamplerID0]] ; CHECK-SPIRV: %[[#]] = OpSampledImage %[[#]] %[[#]] %[[#SamplerID1]] diff --git a/llvm/test/CodeGen/SPIRV/transcoding/OpGroupAsyncCopy.ll b/llvm/test/CodeGen/SPIRV/transcoding/OpGroupAsyncCopy.ll index d2d5483ed361..11b613b956e0 100644 --- a/llvm/test/CodeGen/SPIRV/transcoding/OpGroupAsyncCopy.ll +++ b/llvm/test/CodeGen/SPIRV/transcoding/OpGroupAsyncCopy.ll @@ -1,5 +1,8 @@ ; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV +; TODO: This test currently fails with LLVM_ENABLE_EXPENSIVE_CHECKS enabled +; XFAIL: expensive_checks + ; CHECK-SPIRV-DAG: %[[#]] = OpGroupAsyncCopy %[[#]] %[[#Scope:]] ; CHECK-SPIRV-DAG: %[[#Scope]] = OpConstant %[[#]] diff --git a/llvm/test/CodeGen/SPIRV/transcoding/OpPhi_ArgumentsPlaceholders.ll b/llvm/test/CodeGen/SPIRV/transcoding/OpPhi_ArgumentsPlaceholders.ll index ee5596ed38b1..63b517c80549 100644 --- a/llvm/test/CodeGen/SPIRV/transcoding/OpPhi_ArgumentsPlaceholders.ll +++ b/llvm/test/CodeGen/SPIRV/transcoding/OpPhi_ArgumentsPlaceholders.ll @@ -14,7 +14,6 @@ ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %} -; XFAIL: * %struct.Node = type { %struct.Node.0 addrspace(1)* } %struct.Node.0 = type opaque diff --git a/llvm/test/CodeGen/SPIRV/transcoding/OpVectorExtractDynamic.ll b/llvm/test/CodeGen/SPIRV/transcoding/OpVectorExtractDynamic.ll index c770ab7f8fb5..03731b6d6756 100644 --- a/llvm/test/CodeGen/SPIRV/transcoding/OpVectorExtractDynamic.ll +++ b/llvm/test/CodeGen/SPIRV/transcoding/OpVectorExtractDynamic.ll @@ -1,5 +1,8 @@ ; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV +; TODO: This test currently fails with LLVM_ENABLE_EXPENSIVE_CHECKS enabled +; XFAIL: expensive_checks + ; CHECK-SPIRV: OpName %[[#vec:]] "vec" ; CHECK-SPIRV: OpName %[[#index:]] "index" ; CHECK-SPIRV: OpName %[[#res:]] "res" diff --git a/llvm/test/CodeGen/SPIRV/transcoding/spirv-event-null.ll b/llvm/test/CodeGen/SPIRV/transcoding/spirv-event-null.ll index e512f909cfd0..c8691c32710a 100644 --- a/llvm/test/CodeGen/SPIRV/transcoding/spirv-event-null.ll +++ b/llvm/test/CodeGen/SPIRV/transcoding/spirv-event-null.ll @@ -13,14 +13,33 @@ ; CHECK-DAG: %[[#TyChar:]] = OpTypeInt 8 0 ; CHECK-DAG: %[[#TyV4:]] = OpTypeVector %[[#TyChar]] 4 ; CHECK-DAG: %[[#TyStructV4:]] = OpTypeStruct %[[#TyV4]] -; CHECK-DAG: %[[#TyPtrSV4_W:]] = OpTypePointer Workgroup %[[#TyStructV4]] ; CHECK-DAG: %[[#TyPtrSV4_CW:]] = OpTypePointer CrossWorkgroup %[[#TyStructV4]] ; CHECK-DAG: %[[#TyPtrV4_W:]] = OpTypePointer Workgroup %[[#TyV4]] ; CHECK-DAG: %[[#TyPtrV4_CW:]] = OpTypePointer CrossWorkgroup %[[#TyV4]] +; CHECK-DAG: %[[#TyHalf:]] = OpTypeFloat 16 +; CHECK-DAG: %[[#TyHalfV2:]] = OpTypeVector %[[#TyHalf]] 2 +; CHECK-DAG: %[[#TyHalfV2_W:]] = OpTypePointer Workgroup %[[#TyHalfV2]] +; CHECK-DAG: %[[#TyHalfV2_CW:]] = OpTypePointer CrossWorkgroup %[[#TyHalfV2]] ; Check correct translation of __spirv_GroupAsyncCopy and target("spirv.Event") zeroinitializer ; CHECK: OpFunction +; CHECK: %[[#HalfA1:]] = OpFunctionParameter %[[#TyHalfV2_W:]] +; CHECK: %[[#HalfA2:]] = OpFunctionParameter %[[#TyHalfV2_CW:]] +; CHECK: OpGroupAsyncCopy %[[#TyEvent]] %[[#]] %[[#HalfA1]] %[[#HalfA2]] %[[#]] %[[#]] %[[#ConstEvent]] +; CHECK: OpFunctionEnd + +%StructEvent = type { target("spirv.Event") } + +define spir_kernel void @test_half(ptr addrspace(3) %_arg1, ptr addrspace(1) %_arg2) { +entry: + %r = tail call spir_func target("spirv.Event") @_Z22__spirv_GroupAsyncCopyjPU3AS3Dv2_DF16_PU3AS1KS_mm9ocl_event(i32 2, ptr addrspace(3) %_arg1, ptr addrspace(1) %_arg2, i64 16, i64 10, target("spirv.Event") zeroinitializer) + ret void +} + +declare dso_local spir_func target("spirv.Event") @_Z22__spirv_GroupAsyncCopyjPU3AS3Dv2_DF16_PU3AS1KS_mm9ocl_event(i32 noundef, ptr addrspace(3) noundef, ptr addrspace(1) noundef, i64 noundef, i64 noundef, target("spirv.Event")) + +; CHECK: OpFunction ; CHECK: OpFunctionParameter ; CHECK: %[[#Src:]] = OpFunctionParameter ; CHECK: OpVariable %[[#TyStructPtr]] Function @@ -30,8 +49,6 @@ ; CHECK: OpStore %[[#EventVar]] %[[#CopyRes]] ; CHECK: OpFunctionEnd -%StructEvent = type { target("spirv.Event") } - define spir_kernel void @foo(ptr addrspace(1) %_arg_out_ptr, ptr addrspace(3) %_arg_local_acc) { entry: %var = alloca %StructEvent @@ -50,33 +67,17 @@ declare dso_local spir_func target("spirv.Event") @_Z22__spirv_GroupAsyncCopyjPU ; and %_arg_Local and %_arg are source/destination arguments in OpGroupAsyncCopy ; CHECK: OpFunction -; CHECK: %[[#BarArg1:]] = OpFunctionParameter %[[#TyPtrSV4_W]] +; CHECK: %[[#BarArg1:]] = OpFunctionParameter %[[#TyPtrV4_W]] ; CHECK: %[[#BarArg2:]] = OpFunctionParameter %[[#TyPtrSV4_CW]] ; CHECK: %[[#EventVarBar:]] = OpVariable %[[#TyStructPtr]] Function ; CHECK: %[[#EventVarBarCasted2:]] = OpBitcast %[[#TyEventPtr]] %[[#EventVarBar]] -; CHECK: %[[#SrcBar:]] = OpInBoundsPtrAccessChain %[[#TyPtrSV4_CW]] %[[#BarArg2]] %[[#]] -; CHECK-DAG: %[[#BarArg1Casted:]] = OpBitcast %[[#TyPtrV4_W]] %[[#BarArg1]] -; CHECK-DAG: %[[#SrcBarCasted:]] = OpBitcast %[[#TyPtrV4_CW]] %[[#SrcBar]] -; CHECK: %[[#ResBar:]] = OpGroupAsyncCopy %[[#TyEvent]] %[[#]] %[[#BarArg1Casted]] %[[#SrcBarCasted]] %[[#]] %[[#]] %[[#ConstEvent]] +; CHECK: %[[#ResBar:]] = OpGroupAsyncCopy %[[#TyEvent]] %[[#]] %[[#BarArg1]] %[[#]] %[[#]] %[[#]] %[[#ConstEvent]] ; CHECK: %[[#EventVarBarCasted:]] = OpBitcast %[[#TyEventPtr]] %[[#EventVarBar]] ; CHECK: OpStore %[[#EventVarBarCasted]] %[[#ResBar]] ; CHECK: %[[#EventVarBarGen:]] = OpPtrCastToGeneric %[[#TyEventPtrGen]] %[[#EventVarBarCasted2]] ; CHECK: OpGroupWaitEvents %[[#]] %[[#]] %[[#EventVarBarGen]] ; CHECK: OpFunctionEnd -; CHECK2: OpFunction -; CHECK2: %[[#BarArg1:]] = OpFunctionParameter %[[#TyPtrSV4_W]] -; CHECK2: %[[#BarArg2:]] = OpFunctionParameter %[[#TyPtrSV4_CW]] -; CHECK2: %[[#EventVarBar:]] = OpVariable %[[#TyEventPtr]] Function -; CHECK2: %[[#SrcBar:]] = OpInBoundsPtrAccessChain %[[#TyPtrSV4_CW]] %[[#BarArg2]] %[[#]] -; CHECK2-DAG: %[[#BarArg1Casted:]] = OpBitcast %[[#TyPtrV4_W]] %[[#BarArg1]] -; CHECK2-DAG: %[[#SrcBarCasted:]] = OpBitcast %[[#TyPtrV4_CW]] %[[#SrcBar]] -; CHECK2: %[[#ResBar:]] = OpGroupAsyncCopy %[[#TyEvent]] %[[#]] %[[#BarArg1Casted]] %[[#SrcBarCasted]] %[[#]] %[[#]] %[[#ConstEvent]] -; CHECK2: OpStore %[[#EventVarBar]] %[[#ResBar]] -; CHECK2: %[[#EventVarBarGen:]] = OpPtrCastToGeneric %[[#TyEventPtrGen]] %[[#EventVarBar]] -; CHECK2: OpGroupWaitEvents %[[#]] %[[#]] %[[#EventVarBarGen]] -; CHECK2: OpFunctionEnd - %Vec4 = type { <4 x i8> } define spir_kernel void @bar(ptr addrspace(3) %_arg_Local, ptr addrspace(1) readonly %_arg) { |
