|
1 | 1 | ; RUN: llvm-as %s -o %t.bc |
2 | | -; RUN: llvm-spirv %t.bc -spirv-text -o - | FileCheck %s |
3 | 2 | ; RUN: llvm-spirv %t.bc -o %t.spv |
| 3 | +; RUN: spirv-val %t.spv |
| 4 | +; RUN: llvm-spirv %t.spv -o %t.spt --to-text |
| 5 | +; RUN: llvm-spirv -r %t.spv -o %t.rev.bc |
| 6 | +; RUN: llvm-dis %t.rev.bc |
| 7 | +; RUN: FileCheck %s --input-file %t.spt -check-prefix=CHECK-SPIRV |
| 8 | +; RUN: FileCheck %s --input-file %t.rev.ll -check-prefix=CHECK-LLVM |
4 | 9 |
|
5 | 10 | ; Make sure that when the GEP operand type doesn't match the source element type (here operand a_var is [2 x i16], but the source element is i8), |
6 | 11 | ; we cast the operand to the source element pointer type (a_var to i8*). |
7 | 12 |
|
8 | 13 | target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024" |
9 | 14 | target triple = "spir-unknown-unknown" |
10 | 15 |
|
11 | | -; CHECK-DAG: Name [[A_VAR:[0-9]+]] "a_var" |
12 | | -; CHECK-DAG: Name [[GLOBAL_PTR:[0-9]+]] "global_ptr" |
| 16 | +; CHECK-SPIRV-DAG: Name [[A_VAR:[0-9]+]] "a_var" |
| 17 | +; CHECK-SPIRV-DAG: Name [[GLOBAL_PTR:[0-9]+]] "global_ptr" |
13 | 18 |
|
14 | | -; CHECK-DAG: TypeArray [[ARRAY_TYPE:[0-9]+]] [[USHORT_TYPE:[0-9]+]] [[CONST_2:[0-9]+]] |
15 | | -; CHECK-DAG: TypePointer [[ARRAY_PTR_TYPE:[0-9]+]] 5 [[ARRAY_TYPE]] |
| 19 | +; CHECK-SPIRV-DAG: TypeArray [[ARRAY_TYPE:[0-9]+]] [[USHORT_TYPE:[0-9]+]] [[CONST_2:[0-9]+]] |
| 20 | +; CHECK-SPIRV-DAG: TypePointer [[ARRAY_PTR_TYPE:[0-9]+]] 5 [[ARRAY_TYPE]] |
16 | 21 |
|
17 | | -; CHECK-DAG: Variable [[ARRAY_PTR_TYPE]] [[A_VAR]] 5 [[INIT_ID:[0-9]+]] |
18 | | -; CHECK-DAG: SpecConstantOp [[I8PTR:[0-9]+]] [[BITCAST:[0-9]+]] 124 [[A_VAR]] |
19 | | -; CHECK-DAG: SpecConstantOp [[I8PTR]] [[PTRCHAIN:[0-9]+]] 67 [[BITCAST]] [[INDEX_ID:[0-9]+]] |
20 | | -; CHECK-DAG: TypePointer [[PTR_PTR_TYPE:[0-9]+]] 5 [[I8PTR]] |
21 | | -; CHECK-DAG: Variable [[PTR_PTR_TYPE]] [[GLOBAL_PTR]] 5 [[PTRCHAIN]] |
| 22 | +; CHECK-SPIRV-DAG: Variable [[ARRAY_PTR_TYPE]] [[A_VAR]] 5 [[INIT_ID:[0-9]+]] |
| 23 | +; CHECK-SPIRV-DAG: SpecConstantOp [[I8PTR:[0-9]+]] [[BITCAST:[0-9]+]] 124 [[A_VAR]] |
| 24 | +; CHECK-SPIRV-DAG: SpecConstantOp [[I8PTR]] [[PTRCHAIN:[0-9]+]] 67 [[BITCAST]] [[INDEX_ID:[0-9]+]] |
| 25 | +; CHECK-SPIRV-DAG: TypePointer [[PTR_PTR_TYPE:[0-9]+]] 5 [[I8PTR]] |
| 26 | +; CHECK-SPIRV-DAG: Variable [[PTR_PTR_TYPE]] [[GLOBAL_PTR]] 5 [[PTRCHAIN]] |
| 27 | + |
| 28 | +; CHECK-LLVM: @global_ptr = addrspace(1) global ptr addrspace(1) getelementptr (i8, ptr addrspace(1) @a_var, i64 2), align 8 |
| 29 | +; CHECK-LLVM-NOT: @global_ptr = addrspace(1) global ptr addrspace(1) getelementptr ([2 x i16], ptr addrspace(1) @a_var, i64 2), align 8 |
22 | 30 |
|
23 | 31 | @a_var = dso_local addrspace(1) global [2 x i16] [i16 4, i16 5], align 2 |
24 | 32 | @global_ptr = dso_local addrspace(1) global ptr addrspace(1) getelementptr (i8, ptr addrspace(1) @a_var, i64 2), align 8 |
0 commit comments