[SPIRV] Addition of test files for @llvm.tan and zero_length_array.ll#142097
[SPIRV] Addition of test files for @llvm.tan and zero_length_array.ll#142097michalpaszkowski merged 3 commits intollvm:mainfrom
Conversation
|
@llvm/pr-subscribers-backend-spir-v Author: Aadesh Premkumar (aadeshps-mcw) ChangesFull diff: https://github.com/llvm/llvm-project/pull/142097.diff 2 Files Affected:
diff --git a/llvm/test/CodeGen/SPIRV/llvm-intrinsics/tan.ll b/llvm/test/CodeGen/SPIRV/llvm-intrinsics/tan.ll
new file mode 100644
index 0000000000000..6d28816d86bc2
--- /dev/null
+++ b/llvm/test/CodeGen/SPIRV/llvm-intrinsics/tan.ll
@@ -0,0 +1,24 @@
+; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s
+; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}
+
+; CHECK-DAG: %[[#ext:]] = OpExtInstImport "OpenCL.std"
+
+; CHECK-DAG: %[[#type_f32:]] = OpTypeFloat 32
+; CHECK-DAG: %[[#type_f64:]] = OpTypeFloat 64
+
+; CHECK: %[[#extinst_f32:]] = OpExtInst %[[#type_f32]] %[[#ext]] tan %[[#]]
+; CHECK: %[[#extinst_f64:]] = OpExtInst %[[#type_f64]] %[[#ext]] tan %[[#]]
+
+
+define float @test_tan_f32(float %x) {
+ %res = call float @llvm.tan.f32(float %x)
+ ret float %res
+}
+
+define double @test_tan_f64(double %x) {
+ %res = call double @llvm.tan.f64(double %x)
+ ret double %res
+}
+
+declare float @llvm.tan.f32(float)
+declare double @llvm.tan.f64(double)
diff --git a/llvm/test/CodeGen/SPIRV/zero-length-array.ll b/llvm/test/CodeGen/SPIRV/zero-length-array.ll
new file mode 100644
index 0000000000000..668bf2018dec7
--- /dev/null
+++ b/llvm/test/CodeGen/SPIRV/zero-length-array.ll
@@ -0,0 +1,12 @@
+; 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 %}
+
+; CHECK: %[[#type:]] = OpTypeInt 32 0
+; CHECK: %[[#ext:]] = OpTypeRuntimeArray %[[#type]]
+; CHECK: %[[#]] = OpTypePointer Function %[[#ext]]
+
+define spir_func void @_Z3foov() {
+entry:
+ %i = alloca [0 x i32], align 4
+ ret void
+}
|
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/59/builds/22046 Here is the relevant piece of the build log for the reference |
| ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %} | ||
|
|
||
| ; CHECK: %[[#type:]] = OpTypeInt 32 0 | ||
| ; CHECK: %[[#ext:]] = OpTypeRuntimeArray %[[#type]] |
There was a problem hiding this comment.
I think this is wrong: OpTypeRuntimeArray requires Shader capability, but the triple makes this run for Kernel. @aadeshps-mcw can you please help me understand what are you trying to test here? If we change the triple to spirv-unknown-vulkan-compute, which would run for Shader, there is no OpTypeRuntimeArray, instead there is an OpConstant, which I assume comes from some optimization/pass. @Keenuts can you confirm?
There was a problem hiding this comment.
I just checked, mem2reg is getting rid of the alloca, so no array after that.
There was a problem hiding this comment.
I realize the mistake was on my part due to a misunderstanding of the test. I’ll address it and submit a new PR at the earliest.
There was a problem hiding this comment.
I have updated it in #149522. Let me know if that works for you, otherwise I can just mark it as XFAIL in the PR, so you can address it later in a different PR.
No description provided.