- The SPIR-V spec requires that OpConstantComposite must not reference spec constant operands. When a composite contains non-constant constitued, OpSpecConstantComposite should be emitted instead of OpConstantComposite - Avoid creating function pointer types when the SPV_INTEL_function_pointers extension is unavailable, falling back to i8 as the pointee type - Re-enable spirv-val validation in tests that previously failed due to this issue, and un-XFAIL the block_w_struct_return and global_block transcoding tests related to #60133 fixes #186756
18 lines
887 B
LLVM
18 lines
887 B
LLVM
; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s
|
|
; TODO: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
|
|
|
|
; CHECK-DAG: %[[Array:.*]] = OpTypeArray %[[#]] %[[#]]
|
|
; CHECK-DAG: %[[Struct:.*]] = OpTypeStruct %[[Array]]
|
|
; CHECK-DAG: %[[Zero:.*]] = OpTypeInt 64 0
|
|
; CHECK-DAG: %[[Null:.*]] = OpConstantNull %[[Zero]]
|
|
; CHECK-DAG: %[[R:.*]] = OpSpecConstantComposite %[[Array]] %[[Null]]
|
|
; CHECK-DAG: %[[#]] = OpSpecConstantComposite %[[Struct]] %[[R]]
|
|
|
|
@G1 = addrspace(1) constant { [1 x ptr addrspace(4)] } { [1 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr null to ptr addrspace(4))] }
|
|
@G2 = addrspace(1) constant { [1 x ptr addrspace(4)] } { [1 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) null to ptr addrspace(4))] }
|
|
|
|
define void @foo() {
|
|
entry:
|
|
ret void
|
|
}
|