Skip to content

Commit eb7f340

Browse files
committed
Pre-commit test: [SPIRV][SPIRVPrepareGlobals] tryExtendLLVMBitcodeMarker
1 parent e43cefc commit eb7f340

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
; RUN: not llc -verify-machineinstrs -mtriple=spirv-unknown-unknown %s -o -
2+
; RUN: not llc -verify-machineinstrs -mtriple=spirv64-amd-amdhsa %s -o -
3+
;
4+
; Verify that we lower the embedded bitcode
5+
6+
@llvm.embedded.module = private addrspace(1) constant [0 x i8] zeroinitializer, section ".llvmbc", align 1
7+
@llvm.compiler.used = appending addrspace(1) global [1 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @llvm.embedded.module to ptr addrspace(4))], section "llvm.metadata"
8+
9+
; CHECK: OpName %[[#LLVM_EMBEDDED_MODULE:]] "llvm.embedded.module"
10+
; CHECK: OpDecorate %[[#LLVM_EMBEDDED_MODULE]] Constant
11+
; CHECK: %[[#UCHAR:]] = OpTypeInt 8 0
12+
; CHECK: %[[#UINT:]] = OpTypeInt 32 0
13+
; CHECK: %[[#ONE:]] = OpConstant %[[#UINT]] 1
14+
; CHECK: %[[#UCHAR_ARR_1:]] = OpTypeArray %[[#UCHAR]] %[[#ONE]]
15+
; CHECK: %[[#UCHAR_ARR_1_PTR:]] = OpTypePointer CrossWorkgroup %[[#UCHAR_ARR_1]]
16+
; CHECK: %[[#CONST_UCHAR_ARR_1:]] = OpConstantNull %[[#UCHAR_ARR_1]]
17+
; CHECK: %[[#LLVM_EMBEDDED_MODULE]] = OpVariable %[[#UCHAR_ARR_1_PTR]] CrossWorkgroup %[[#CONST_UCHAR_ARR_1]]
18+
19+
define spir_kernel void @foo() {
20+
entry:
21+
ret void
22+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
; RUN: llc -verify-machineinstrs -mtriple=spirv-unknown-unknown %s -o - | FileCheck %s
2+
; RUN: %if spirv-tools %{ llc -mtriple=spirv-unknown-unknown %s -o - -filetype=obj | spirv-val %}
3+
; RUN: llc -verify-machineinstrs -mtriple=spirv64-amd-amdhsa %s -o - | FileCheck %s
4+
; RUN: %if spirv-tools %{ llc -mtriple=spirv64-amd-amdhsa %s -o - -filetype=obj | spirv-val %}
5+
;
6+
; Verify that we can lower the embeded module and cmdline
7+
8+
@llvm.embedded.module = private addrspace(1) constant [4 x i8] c"BC\C0\DE", section ".llvmbc", align 1
9+
@llvm.cmdline = private addrspace(1) constant [5 x i8] c"-cc1\00", section ".llvmcmd", align 1
10+
@llvm.compiler.used = appending addrspace(1) global [2 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @llvm.embedded.module to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @llvm.cmdline to ptr addrspace(4))], section "llvm.metadata"
11+
12+
; CHECK: OpName %[[#LLVM_EMBEDDED_MODULE:]] "llvm.embedded.module"
13+
; CHECK: OpName %[[#LLVM_CMDLINE:]] "llvm.cmdline"
14+
; CHECK: OpDecorate %[[#LLVM_EMBEDDED_MODULE]] Constant
15+
; CHECK: OpDecorate %[[#LLVM_CMDLINE]] Constant
16+
; CHECK: %[[#UCHAR:]] = OpTypeInt 8 0
17+
; CHECK: %[[#UINT:]] = OpTypeInt 32 0
18+
; CHECK: %[[#FIVE:]] = OpConstant %[[#UINT]] 5
19+
; CHECK: %[[#UCHAR_ARR_5:]] = OpTypeArray %[[#UCHAR]] %[[#FIVE]]
20+
; CHECK: %[[#FOUR:]] = OpConstant %[[#UINT]] 4
21+
; CHECK: %[[#UCHAR_ARR_4:]] = OpTypeArray %[[#UCHAR]] %[[#FOUR]]
22+
; CHECK: %[[#UCHAR_ARR_5_PTR:]] = OpTypePointer CrossWorkgroup %[[#UCHAR_ARR_5]]
23+
; CHECK: %[[#UCHAR_ARR_4_PTR:]] = OpTypePointer CrossWorkgroup %[[#UCHAR_ARR_4]]
24+
; CHECK: %[[#CONST_UCHAR_ARR_4:]] = OpConstantComposite %[[#UCHAR_ARR_4]]
25+
; CHECK: %[[#LLVM_EMBEDDED_MODULE]] = OpVariable %[[#UCHAR_ARR_4_PTR]] CrossWorkgroup %[[#CONST_UCHAR_ARR_4]]
26+
; CHECK: %[[#CONST_UCHAR_ARR_5:]] = OpConstantComposite %[[#UCHAR_ARR_5]]
27+
; CHECK: %[[#LLVM_CMDLINE]] = OpVariable %[[#UCHAR_ARR_5_PTR]] CrossWorkgroup %[[#CONST_UCHAR_ARR_5]]
28+
29+
define spir_kernel void @foo() {
30+
entry:
31+
ret void
32+
}

0 commit comments

Comments
 (0)