30 lines
790 B
LLVM
30 lines
790 B
LLVM
; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s
|
|
|
|
; CHECK-DAG: %[[#I32:]] = OpTypeInt 32
|
|
; CHECK-DAG: %[[#I16:]] = OpTypeInt 16
|
|
; CHECK-DAG: %[[#STRUCT:]] = OpTypeStruct %[[#I32]] %[[#I16]]
|
|
; CHECK-DAG: %[[#NESTED_STRUCT:]] = OpTypeStruct %[[#STRUCT]] %[[#I16]]
|
|
; CHECK-DAG: %[[#UNDEF:]] = OpUndef %[[#NESTED_STRUCT]]
|
|
|
|
; CHECK: %[[#]] = OpFunction %[[#]] None %[[#]]
|
|
; CHECK-NEXT: %[[#PTR:]] = OpFunctionParameter %[[#]]
|
|
; CHECK-NEXT: %[[#]] = OpLabel
|
|
; CHECK-NEXT: %[[#BC:]] = OpBitcast %[[#]] %[[#PTR]]
|
|
; CHECK-NEXT: OpStore %[[#BC]] %[[#UNDEF]] Aligned 4
|
|
; CHECK-NEXT: OpReturn
|
|
; CHECK-NEXT: OpFunctionEnd
|
|
|
|
%struct = type {
|
|
i32,
|
|
i16
|
|
}
|
|
|
|
%nested_struct = type {
|
|
%struct,
|
|
i16
|
|
}
|
|
|
|
define void @foo(ptr %ptr) {
|
|
store %nested_struct undef, ptr %ptr
|
|
ret void
|
|
}
|