Skip to content

Commit 2a0693c

Browse files
vmaksimojsji
authored andcommitted
Test more cases with SPV_KHR_untyped_pointers (#2821)
Original commit: KhronosGroup/SPIRV-LLVM-Translator@caa1abcda8a91de
1 parent 00fc482 commit 2a0693c

21 files changed

+243
-63
lines changed

llvm-spirv/test/EnqueueEmptyKernel.ll

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,14 @@
1313
;; ^(){});
1414
;; }
1515
; RUN: llvm-as < %s > %t.bc
16-
; RUN: llvm-spirv %t.bc -o - -spirv-text | FileCheck %s --check-prefix=CHECK-SPIRV
16+
; RUN: llvm-spirv %t.bc -o - -spirv-text | FileCheck %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-TYPED-PTR
1717
; RUN: llvm-spirv %t.bc -o %t.spv
1818
; RUN: spirv-val %t.spv
1919

20+
; RUN: llvm-spirv --spirv-ext=+SPV_KHR_untyped_pointers %t.bc -o - -spirv-text | FileCheck %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-UNTYPED-PTR
21+
; RUN: llvm-spirv --spirv-ext=+SPV_KHR_untyped_pointers %t.bc -o %t.spv
22+
; RUN: spirv-val %t.spv
23+
2024
target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-n8:16:32:64"
2125
target triple = "spir64-unknown-unknown"
2226

@@ -29,7 +33,8 @@ target triple = "spir64-unknown-unknown"
2933
; CHECK-SPIRV: Name [[Block:[0-9]+]] "__block_literal_global"
3034
; CHECK-SPIRV: TypeInt [[Int8:[0-9]+]] 8
3135
; CHECK-SPIRV: TypeVoid [[Void:[0-9]+]]
32-
; CHECK-SPIRV: TypePointer [[Int8PtrGen:[0-9]+]] 8 [[Int8]]
36+
; CHECK-SPIRV-TYPED-PTR: TypePointer [[Int8PtrGen:[0-9]+]] 8 [[Int8]]
37+
; CHECK-SPIRV-UNTYPED-PTR: TypeUntypedPointerKHR [[Int8PtrGen:[0-9]+]] 8
3338
; CHECK-SPIRV: Variable {{[0-9]+}} [[Block:[0-9]+]]
3439

3540
; Function Attrs: convergent nounwind

llvm-spirv/test/SpecConstants/spec-constant-length-array.ll

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
; RUN: llvm-as %s -o %t.bc
2-
; RUN: llvm-spirv -spirv-text -o - %t.bc | FileCheck %s --check-prefix CHECK-SPV
2+
; RUN: llvm-spirv -spirv-text -o - %t.bc | FileCheck %s --check-prefixes=CHECK-SPV,CHECK-SPV-TYPED-PTR
33
; RUN: llvm-spirv -o %t.spv %t.bc
44
; RUN: spirv-val %t.spv
55
; RUN: llvm-spirv -r -o - %t.spv | llvm-dis | FileCheck %s --check-prefix CHECK-LLVM
66

7+
; RUN: llvm-spirv --spirv-ext=+SPV_KHR_untyped_pointers -spirv-text -o - %t.bc | FileCheck %s --check-prefixes=CHECK-SPV,CHECK-SPV-UNTYPED-PTR
8+
; RUN: llvm-spirv --spirv-ext=+SPV_KHR_untyped_pointers -o %t.spv %t.bc
9+
; RUN: spirv-val %t.spv
10+
; RUN: llvm-spirv -r -o - %t.spv | llvm-dis | FileCheck %s --check-prefix CHECK-LLVM
11+
712
; CHECK-SPV-DAG: Decorate [[#I64_CONST:]] SpecId [[#]]
813
; CHECK-SPV-DAG: Decorate [[#I32_CONST:]] SpecId [[#]]
914
; CHECK-SPV-DAG: Decorate [[#I8_CONST:]] SpecId [[#]]
@@ -20,10 +25,11 @@
2025
; CHECK-SPV-DAG: SpecConstant [[#I8_TY]] [[#LENGTH_2:]]
2126

2227
; CHECK-SPV-DAG: TypeFloat [[#FLOAT_TY:]] 32
23-
; CHECK-SPV-DAG: TypePointer [[#FLOAT_PTR_TY:]] [[#FUNCTION_SC:]] [[#FLOAT_TY]]
28+
; CHECK-SPV-TYPED-PTR-DAG: TypePointer [[#FLOAT_PTR_TY:]] [[#FUNCTION_SC:]] [[#FLOAT_TY]]
29+
; CHECK-SPV-UNTYPED-PTR-DAG: TypeUntypedPointerKHR [[#PTR_TY:]] [[#FUNCTION_SC:]]
2430
; CHECK-SPV-DAG: TypeArray [[#ARR_TY_0:]] [[#FLOAT_TY]] [[#LENGTH_0]]
2531
; CHECK-SPV-DAG: TypePointer [[#ARR_PTR_TY_0:]] [[#FUNCTION_SC]] [[#ARR_TY_0]]
26-
; CHECK-SPV-DAG: TypePointer [[#I8_PTR_TY:]] [[#FUNCTION_SC]] [[#I8_TY]]
32+
; CHECK-SPV-TYPED-PTR-DAG: TypePointer [[#I8_PTR_TY:]] [[#FUNCTION_SC]] [[#I8_TY]]
2733
; CHECK-SPV-DAG: TypeArray [[#ARR_TY_1:]] [[#I8_TY]] [[#LENGTH_1]]
2834
; CHECK-SPV-DAG: TypePointer [[#ARR_PTR_TY_1:]] [[#FUNCTION_SC]] [[#ARR_TY_1]]
2935
; CHECK-SPV-DAG: TypeFloat [[#DOUBLE_TY:]] 64
@@ -51,12 +57,14 @@ define spir_kernel void @test() {
5157
; CHECK-LLVM: %[[ALLOCA1:.*]] = alloca [2 x i8], align 2
5258
; CHECK-LLVM: %[[ALLOCA2:.*]] = alloca [4 x %struct_type], align 16
5359

54-
; CHECK-SPV: Bitcast [[#FLOAT_PTR_TY]] [[#]] [[#SCLA_0]]
60+
; CHECK-SPV-TYPED-PTR: Bitcast [[#FLOAT_PTR_TY]] [[#]] [[#SCLA_0]]
61+
; CHECK-SPV-UNTYPED-PTR: Bitcast [[#PTR_TY]] [[#]] [[#SCLA_0]]
5562

5663
; CHECK-LLVM: %[[VAR0:.*]] = bitcast ptr %[[ALLOCA0]] to ptr
5764
%scla0 = alloca float, i64 %length0, align 4
5865

59-
; CHECK-SPV: Bitcast [[#I8_PTR_TY]] [[#]] [[#SCLA_1]]
66+
; CHECK-SPV-TYPED-PTR: Bitcast [[#I8_PTR_TY]] [[#]] [[#SCLA_1]]
67+
; CHECK-SPV-UNTYPED-PTR: Bitcast [[#PTR_TY]] [[#]] [[#SCLA_1]]
6068

6169
; CHECK-LLVM: %[[VAR1:.*]] = bitcast ptr %[[ALLOCA1]] to ptr
6270
%scla1 = alloca i8, i32 %length1, align 2

llvm-spirv/test/array-alloca.ll

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
; Roundtrip test.
1111
; RUN: llvm-spirv -r %t.spv -o - | llvm-dis -o - | FileCheck %s --check-prefix=CHECK-LLVM
1212

13+
; RUN: llvm-spirv %t.bc -o %t.spv --spirv-ext=+SPV_KHR_untyped_pointers
14+
; RUN: spirv-val %t.spv
15+
; RUN: llvm-spirv %t.bc -spirv-text --spirv-ext=+SPV_KHR_untyped_pointers -o - | FileCheck %s --check-prefix=CHECK-SPIRV
16+
; RUN: llvm-spirv -r %t.spv -o - | llvm-dis -o - | FileCheck %s --check-prefix=CHECK-LLVM
17+
1318
target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
1419
target triple = "spir64-unknown-unknown"
1520

@@ -21,7 +26,7 @@ target triple = "spir64-unknown-unknown"
2126
; CHECK-SPIRV: Constant [[#I64]] [[#SIZE:]] 4 0
2227
; CHECK-SPIRV: TypeVoid [[#VOID:]]
2328
; CHECK-SPIRV: TypeFunction [[#FUNCTY:]] [[#VOID]]
24-
; CHECK-SPIRV: TypePointer [[#PTRTY:]] [[#FUNCSTORAGE:]] [[#I32]]
29+
; CHECK-SPIRV: {{(TypePointer|TypeUntypedPointerKHR)}} [[#PTRTY:]] [[#FUNCSTORAGE:]]
2530
; CHECK-SPIRV: TypeArray [[#ARRTY:]] [[#I32]] [[#SIZE]]
2631
; CHECK-SPIRV: TypePointer [[#ARRPTRTY:]] [[#FUNCSTORAGE]] [[#ARRTY]]
2732

llvm-spirv/test/entry-point-interfaces.ll

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,28 @@
33
; RUN: llvm-spirv %t.bc -o %t.spv
44
; RUN: spirv-val --target-env spv1.4 %t.spv
55
; RUN: llvm-spirv -to-text %t.spv -o %t.from.spv.spt
6-
; RUN: FileCheck < %t.from.spv.spt %s --check-prefix=CHECK-SPIRV
6+
; RUN: FileCheck < %t.from.spv.spt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-TYPED-PTR
77

88
; RUN: llvm-spirv -spirv-text %t.bc -o %t.from.bc.spt
9-
; RUN: FileCheck < %t.from.bc.spt %s --check-prefix=CHECK-SPIRV
9+
; RUN: FileCheck < %t.from.bc.spt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-TYPED-PTR
10+
11+
; Check the same with untyped pointers enabled
12+
; RUN: llvm-spirv --spirv-ext=+SPV_KHR_untyped_pointers %t.bc -o %t.spv
13+
; RUN: spirv-val --target-env spv1.4 %t.spv
14+
; RUN: llvm-spirv --spirv-ext=+SPV_KHR_untyped_pointers -to-text %t.spv -o %t.from.spv.spt
15+
; RUN: FileCheck < %t.from.spv.spt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-UNTYPED-PTR
16+
17+
; RUN: llvm-spirv --spirv-ext=+SPV_KHR_untyped_pointers -spirv-text %t.bc -o %t.from.bc.spt
18+
; RUN: FileCheck < %t.from.bc.spt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-UNTYPED-PTR
1019

1120
; CHECK-SPIRV: 7 EntryPoint 6 [[#]] "test" [[#Interface1:]] [[#Interface2:]]
1221
; CHECK-SPIRV: TypeInt [[#TypeInt:]] 32 0
1322
; CHECK-SPIRV: Constant [[#TypeInt]] [[#Constant1:]] 1
1423
; CHECK-SPIRV: Constant [[#TypeInt]] [[#Constant2:]] 3
15-
; CHECK-SPIRV: Variable [[#]] [[#Interface1]] 0 [[#Constant1]]
16-
; CHECK-SPIRV: Variable [[#]] [[#Interface2]] 0 [[#Constant2]]
24+
; CHECK-SPIRV-TYPED-PTR: Variable [[#]] [[#Interface1]] 0 [[#Constant1]]
25+
; CHECK-SPIRV-TYPED-PTR: Variable [[#]] [[#Interface2]] 0 [[#Constant2]]
26+
; CHECK-SPIRV-UNTYPED-PTR: UntypedVariableKHR [[#]] [[#Interface1]] 0 [[#TypeInt]] [[#Constant1]]
27+
; CHECK-SPIRV-UNTYPED-PTR: UntypedVariableKHR [[#]] [[#Interface2]] 0 [[#TypeInt]] [[#Constant2]]
1728

1829
; ModuleID = 'source.cpp'
1930
source_filename = "source.cpp"

llvm-spirv/test/layout.ll

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
; RUN: llvm-as %s -o %t.bc
22
; RUN: llvm-spirv %t.bc -spirv-text -o %t
3-
; RUN: FileCheck < %t %s
3+
; RUN: FileCheck < %t %s --check-prefixes=CHECK,CHECK-TYPED-PTR
44
; RUN: llvm-spirv %t.bc -o %t.spv
55
; RUN: spirv-val %t.spv
66

7+
; RUN: llvm-spirv --spirv-ext=+SPV_KHR_untyped_pointers %t.bc -spirv-text -o %t
8+
; RUN: FileCheck < %t %s --check-prefixes=CHECK,CHECK-UNTYPED-PTR
9+
; RUN: llvm-spirv --spirv-ext=+SPV_KHR_untyped_pointers %t.bc -o %t.spv
10+
; TODO: enable back once we support untyped ptr access chaing instructions as spec constant operand
11+
; R/UN: spirv-val %t.spv
12+
713
; CHECK: 119734787 {{[0-9]*}} {{[0-9]*}} {{[0-9]*}} 0
814
; CHECK-NEXT: {{[0-9]*}} Capability
915
; CHECK: {{[0-9]*}} ExtInstImport
@@ -48,23 +54,28 @@
4854
; CHECK: {{[0-9]*}} Constant [[TypeInt32]] [[Int32Two:[0-9]+]] 2
4955
; CHECK: {{[0-9]*}} TypeArray [[TypeArrayInt32:[0-9]+]] [[TypeInt32]] [[Int32Two]]
5056
; CHECK: {{[0-9]*}} TypePointer [[TypePtr5ArrayInt32:[0-9]+]] 5 [[TypeArrayInt32]]
51-
; CHECK: {{[0-9]*}} TypePointer [[TypePtr5Int32:[0-9]+]] 5 [[TypeInt32]]
52-
; CHECK: {{[0-9]*}} TypePointer [[TypePtr5Ptr5Int32:[0-9]+]] 5 [[TypePtr5Int32]]
57+
; CHECK-TYPED-PTR: {{[0-9]*}} TypePointer [[TypePtr5Int32:[0-9]+]] 5 [[TypeInt32]]
58+
; CHECK-TYPED-PTR: {{[0-9]*}} TypePointer [[TypePtr5Ptr5Int32:[0-9]+]] 5 [[TypePtr5Int32]]
59+
; CHECK-UNTYPED-PTR: {{[0-9]*}} TypeUntypedPointerKHR [[Ptr:[0-9]+]] 5
5360
; CHECK: {{[0-9]*}} TypeFloat [[TypeFloat:[0-9]+]]
5461
; CHECK: {{[0-9]*}} TypeArray [[TypeArrayFloat:[0-9]+]] [[TypeFloat]] [[Int32Two]]
5562
; CHECK: {{[0-9]*}} TypePointer [[TypePtr8ArrayFloat:[0-9]+]] 0 [[TypeArrayFloat]]
5663
; CHECK: {{[0-9]*}} TypeVector [[TypeVectorInt32:[0-9]+]] [[TypeInt32]] 3
5764
; CHECK: {{[0-9]*}} TypePointer [[TypePtr8VectorInt32:[0-9]+]] 0 [[TypeVectorInt32]]
58-
; CHECK: {{[0-9]*}} TypePointer [[TypePtr0Int8:[0-9]+]] 8 [[TypeInt8]]
65+
; CHECK-TYPED-PTR: {{[0-9]*}} TypePointer [[TypePtr0Int8:[0-9]+]] 8 [[TypeInt8]]
66+
; CHECK-UNTYPED-PTR: {{[0-9]*}} TypeUntypedPointerKHR [[TypePtr0Int8:[0-9]+]] 8
5967
; CHECK: {{[0-9]*}} TypeStruct [[BID:[0-9]+]] {{[0-9]+}} [[TypePtr0Int8]]
6068
; CHECK: {{[0-9]*}} TypeStruct [[CID:[0-9]+]] {{[0-9]+}} [[BID]]
6169
; CHECK: {{[0-9]*}} TypeStruct [[AID:[0-9]+]] {{[0-9]+}} [[CID]]
6270
; CHECK: {{[0-9]*}} TypeVoid [[Void:[0-9]+]]
63-
; CHECK: {{[0-9]*}} TypePointer [[TypePtr5Int8:[0-9]+]] 5 [[TypeInt8]]
64-
; CHECK: {{[0-9]*}} TypeFunction [[TypeBar1:[0-9]+]] [[Void]] [[TypePtr5Int8]]
71+
; CHECK-TYPED-PTR: {{[0-9]*}} TypePointer [[TypePtr5Int8:[0-9]+]] 5 [[TypeInt8]]
72+
; CHECK-TYPED-PTR: {{[0-9]*}} TypeFunction [[TypeBar1:[0-9]+]] [[Void]] [[TypePtr5Int8]]
73+
; CHECK-UNTYPED-PTR: {{[0-9]*}} TypeFunction [[TypeBar1:[0-9]+]] [[Void]] [[Ptr]]
6574
; CHECK: {{[0-9]*}} Variable [[TypePtr5ArrayInt32]] [[Var:[0-9]+]]
66-
; CHECK: {{[0-9]*}} SpecConstantOp [[TypePtr5Int32]] [[SConstOp:[0-9]+]] 70 [[Var]]
67-
; CHECK: {{[0-9]*}} Variable {{[0-9]+}} {{[0-9]+}} 5 [[SConstOp]]
75+
; CHECK-TYPED-PTR: {{[0-9]*}} SpecConstantOp [[TypePtr5Int32]] [[SConstOp:[0-9]+]] 70 [[Var]]
76+
; CHECK-UNTYPED-PTR: {{[0-9]*}} SpecConstantOp [[Ptr]] [[SConstOp:[0-9]+]] 4424 [[TypeArrayInt32]] [[Var]]
77+
; CHECK-TYPED-PTR: {{[0-9]*}} Variable {{[0-9]+}} {{[0-9]+}} 5 [[SConstOp]]
78+
; CHECK-UNTYPED-PTR: {{[0-9]*}} UntypedVariableKHR {{[0-9]+}} {{[0-9]+}} 5 [[Ptr]] [[SConstOp]]
6879

6980
; CHECK-NOT: {{[0-9]*}} Capability
7081
; CHECK-NOT: {{[0-9]*}} ExtInstImport

llvm-spirv/test/link-attribute.ll

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,18 @@
33
; RUN: FileCheck < %t %s
44
; RUN: llvm-spirv %t.bc -o %t.spv
55
; RUN: spirv-val %t.spv
6+
7+
; RUN: llvm-spirv --spirv-ext=+SPV_KHR_untyped_pointers %t.bc -spirv-text -o %t
8+
; RUN: FileCheck < %t %s
9+
; RUN: llvm-spirv --spirv-ext=+SPV_KHR_untyped_pointers %t.bc -o %t.spv
10+
; RUN: spirv-val %t.spv
11+
612
target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
713
target triple = "spir64-unknown-unknown"
814

915

1016
; CHECK: 8 Decorate [[ID:[0-9]*]] LinkageAttributes "imageSampler" Export
11-
; CHECK: 5 Variable {{[0-9]*}} [[ID]] 0 {{[0-9]*}}
17+
; CHECK: {{Variable|UntypedVariableKHR}} {{[0-9]*}} [[ID]] 0 {{[0-9]*}}
1218

1319
@imageSampler = addrspace(2) constant i32 36, align 4
1420

llvm-spirv/test/llvm-intrinsics/memmove.ll

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
; RUN: llvm-as %s -o %t.bc
22
; RUN: llvm-spirv %t.bc -spirv-text -o %t.txt
3-
; RUN: FileCheck < %t.txt %s --check-prefix=CHECK-SPIRV
3+
; RUN: FileCheck < %t.txt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-TYPED-PTR
44
; RUN: llvm-spirv %t.bc -o %t.spv
55
; RUN: spirv-val %t.spv
66
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
77
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM
88

9+
; RUN: llvm-spirv %t.bc -spirv-text -o %t.txt --spirv-ext=+SPV_KHR_untyped_pointers
10+
; RUN: FileCheck < %t.txt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-UNTYPED-PTR
11+
; RUN: llvm-spirv %t.bc -o %t.spv --spirv-ext=+SPV_KHR_untyped_pointers
12+
; RUN: spirv-val %t.spv
13+
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
14+
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM
15+
916
; CHECK-SPIRV-NOT: llvm.memmove
1017

1118
; CHECK-SPIRV-DAG: TypeInt [[#TYPEINT:]] 32
@@ -14,9 +21,12 @@
1421
; CHECK-SPIRV-DAG: Constant [[#TYPEINT]] [[#C68:]] 68
1522
; CHECK-SPIRV-DAG: Constant [[#TYPEINT]] [[#C72:]] 72
1623
; CHECK-SPIRV-DAG: Constant [[#TYPEINT]] [[#C32:]] 32
17-
; CHECK-SPIRV-DAG: TypePointer [[#I8GLOBAL_PTR:]] 5 [[#I8]]
18-
; CHECK-SPIRV-DAG: TypePointer [[#I8PRIVATE_PTR:]] 7 [[#I8]]
19-
; CHECK-SPIRV-DAG: TypePointer [[#I8GENERIC_PTR:]] 8 [[#I8]]
24+
; CHECK-SPIRV-TYPED-PTR-DAG: TypePointer [[#I8GLOBAL_PTR:]] 5 [[#I8]]
25+
; CHECK-SPIRV-TYPED-PTR-DAG: TypePointer [[#I8PRIVATE_PTR:]] 7 [[#I8]]
26+
; CHECK-SPIRV-TYPED-PTR-DAG: TypePointer [[#I8GENERIC_PTR:]] 8 [[#I8]]
27+
; CHECK-SPIRV-UNTYPED-PTR-DAG: TypeUntypedPointerKHR [[#I8GLOBAL_PTR:]] 5
28+
; CHECK-SPIRV-UNTYPED-PTR-DAG: TypeUntypedPointerKHR [[#I8PRIVATE_PTR:]] 7
29+
; CHECK-SPIRV-UNTYPED-PTR-DAG: TypeUntypedPointerKHR [[#I8GENERIC_PTR:]] 8
2030

2131
; CHECK-SPIRV-LABEL: [[#]] Function [[#]]
2232
; CHECK-SPIRV: FunctionParameter [[#I8GLOBAL_PTR]] [[#ARG_IN:]]

llvm-spirv/test/llvm-intrinsics/memset-opaque.ll

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,27 @@
11
; RUN: llvm-as %s -o %t.bc
22
; RUN: llvm-spirv %t.bc -spirv-text -o %t.spt
3-
; RUN: FileCheck < %t.spt %s --check-prefix=CHECK-SPIRV
3+
; RUN: FileCheck < %t.spt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-TYPED-PTR
44
; RUN: llvm-spirv %t.bc -o %t.spv
55
; RUN: spirv-val %t.spv
66
; RUN: llvm-spirv -r %t.spv -o - | llvm-dis | FileCheck %s --check-prefix=CHECK-LLVM-OPAQUE
77

8+
; RUN: llvm-spirv %t.bc -spirv-text -o %t.spt --spirv-ext=+SPV_KHR_untyped_pointers
9+
; RUN: FileCheck < %t.spt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-UNTYPED-PTR
10+
; RUN: llvm-spirv %t.bc -o %t.spv --spirv-ext=+SPV_KHR_untyped_pointers
11+
; RUN: spirv-val %t.spv
12+
; RUN: llvm-spirv -r %t.spv -o - | llvm-dis | FileCheck %s --check-prefix=CHECK-LLVM-OPAQUE
13+
814
; CHECK-SPIRV: Decorate [[#NonConstMemset:]] LinkageAttributes "spirv.llvm_memset_p3_i32"
915
; CHECK-SPIRV: TypeInt [[Int8:[0-9]+]] 8 0
1016
; CHECK-SPIRV: Constant {{[0-9]+}} [[Lenmemset21:[0-9]+]] 4
1117
; CHECK-SPIRV: Constant {{[0-9]+}} [[Lenmemset0:[0-9]+]] 12
1218
; CHECK-SPIRV: Constant {{[0-9]+}} [[Const21:[0-9]+]] 21
1319
; CHECK-SPIRV: TypeArray [[Int8x4:[0-9]+]] [[Int8]] [[Lenmemset21]]
14-
; CHECK-SPIRV: TypePointer [[Int8Ptr:[0-9]+]] 8 [[Int8]]
20+
; CHECK-SPIRV-TYPED-PTR: TypePointer [[Int8Ptr:[0-9]+]] 8 [[Int8]]
21+
; CHECK-SPIRV-UNTYPED-PTR: TypeUntypedPointerKHR [[Int8Ptr:[0-9]+]] 8
1522
; CHECK-SPIRV: TypeArray [[Int8x12:[0-9]+]] [[Int8]] [[Lenmemset0]]
16-
; CHECK-SPIRV: TypePointer [[Int8PtrConst:[0-9]+]] 0 [[Int8]]
23+
; CHECK-SPIRV-TYPED-PTR: TypePointer [[Int8PtrConst:[0-9]+]] 0 [[Int8]]
24+
; CHECK-SPIRV-UNTYPED-PTR: TypeUntypedPointerKHR [[Int8PtrConst:[0-9]+]] 0
1725

1826
; CHECK-SPIRV: ConstantNull [[Int8x12]] [[Init:[0-9]+]]
1927
; CHECK-SPIRV: Variable {{[0-9]+}} [[Val:[0-9]+]] 0 [[Init]]
@@ -43,7 +51,8 @@
4351
; CHECK-SPIRV: Label [[#WhileBody]]
4452
; CHECK-SPIRV: Phi [[#]] [[#Offset:]] [[#Zero]] [[#Entry]] [[#OffsetInc:]] [[#WhileBody]]
4553
; CHECK-SPIRV: Bitcast [[#]] [[#DestU8:]] [[#Dest]]
46-
; CHECK-SPIRV: InBoundsPtrAccessChain [[#]] [[#Ptr:]] [[#DestU8]] [[#Offset]]
54+
; CHECK-SPIRV-TYPED-PTR: InBoundsPtrAccessChain [[#]] [[#Ptr:]] [[#DestU8]] [[#Offset]]
55+
; CHECK-SPIRV-UNTYPED-PTR: UntypedInBoundsPtrAccessChainKHR [[#]] [[#Ptr:]] [[Int8]] [[#DestU8]] [[#Offset]]
4756
; CHECK-SPIRV: Store [[#Ptr]] [[#Value]] 2 1
4857
; CHECK-SPIRV: IAdd [[#]] [[#OffsetInc]] [[#Offset]] [[#One:]]
4958
; CHECK-SPIRV: ULessThan [[#]] [[#NotEnd:]] [[#OffsetInc]] [[#Len]]

llvm-spirv/test/long-type-struct.ll

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
11
; RUN: llvm-as %s -o %t.bc
22
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_constant_composite %t.bc -o %t.spv
3-
; RUN: llvm-spirv %t.spv --to-text -o - | FileCheck %s --check-prefix=CHECK-SPIRV
3+
; RUN: llvm-spirv %t.spv --to-text -o - | FileCheck %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-TYPED-PTR
44
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
55
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_constant_composite -spirv-text %t.rev.bc -o %t2.spt
6-
; RUN: FileCheck --input-file=%t2.spt %s --check-prefix=CHECK-SPIRV
6+
; RUN: FileCheck --input-file=%t2.spt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-TYPED-PTR
7+
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM
8+
; TODO: run validator once it supports the extension
9+
; RUNx: spirv-val %t.spv
10+
11+
; RUN: not llvm-spirv %t.bc -o %t.spv 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
12+
13+
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_constant_composite,+SPV_KHR_untyped_pointers %t.bc -o %t.spv
14+
; RUN: llvm-spirv %t.spv --to-text -o - | FileCheck %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-UNTYPED-PTR
15+
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
16+
; RUN: llvm-spirv --spirv-ext=+SPV_INTEL_long_constant_composite,+SPV_KHR_untyped_pointers -spirv-text %t.rev.bc -o %t2.spt
17+
; RUN: FileCheck --input-file=%t2.spt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-UNTYPED-PTR
718
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM
819
; TODO: run validator once it supports the extension
920
; RUNx: spirv-val %t.spv
@@ -13,7 +24,8 @@
1324
; CHECK-SPIRV: Capability LongCompositesINTEL
1425
; CHECK-SPIRV: Extension "SPV_INTEL_long_constant_composite"
1526
; CHECK-SPIRV: TypeInt [[TInt:[0-9]+]] 8
16-
; CHECK-SPIRV: TypePointer [[TIntPtr:[0-9]+]] 8 [[TInt]]
27+
; CHECK-SPIRV-TYPED-PTR: TypePointer [[TIntPtr:[0-9]+]] 8 [[TInt]]
28+
; CHECK-SPIRV-UNTYPED-PTR: TypeUntypedPointerKHR [[TIntPtr:[0-9]+]] 8
1729
; CHECK-SPIRV: TypeArray [[TArr:[0-9]+]]
1830
; CHECK-SPIRV: 65535 TypeStruct [[TStruct:[0-9]+]] [[TIntPtr]] [[TIntPtr]] [[TArr]] [[TInt]] [[TInt]] [[TInt]]
1931
; CHECK-SPIRV-NEXT: 10 TypeStructContinuedINTEL [[TInt]] [[TInt]] [[TInt]]

llvm-spirv/test/spirv_global_variable_decoration.ll

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@
66
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
77
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM
88

9+
; RUN: llvm-spirv %t.bc -spirv-text --spirv-ext=+SPV_KHR_untyped_pointers -o - | FileCheck %s --check-prefix=CHECK-SPIRV
10+
; RUN: llvm-spirv %t.bc --spirv-ext=+SPV_KHR_untyped_pointers -o %t.spv
11+
; RUN: spirv-val %t.spv
12+
; RUN: llvm-spirv -r %t.spv --spirv-target-env=SPV-IR -o %t.rev.bc
13+
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-SPV-IR
14+
; RUN: llvm-spirv -r %t.spv -o %t.rev.bc
15+
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-LLVM
16+
917
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"
1018
target triple = "spir"
1119

@@ -15,8 +23,8 @@ target triple = "spir"
1523
; CHECK-SPIRV: Decorate [[PId1:[0-9]+]] Constant
1624
; CHECK-SPIRV: Decorate [[PId2:[0-9]+]] Constant
1725
; CHECK-SPIRV: Decorate [[PId2]] Binding 1
18-
; CHECK-SPIRV: Variable {{[0-9]+}} [[PId1]]
19-
; CHECK-SPIRV: Variable {{[0-9]+}} [[PId2]]
26+
; CHECK-SPIRV: {{(Variable|UntypedVariableKHR)}} {{[0-9]+}} [[PId1]]
27+
; CHECK-SPIRV: {{(Variable|UntypedVariableKHR)}} {{[0-9]+}} [[PId2]]
2028

2129
!1 = !{i32 22}
2230
!2 = !{!1}

llvm-spirv/test/transcoding/CreatePipeFromPipeStorage.ll

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
; RUN: llvm-as %s -o %t.bc
22
; RUN: llvm-spirv %t.bc -spirv-text -o %t.txt
3-
; RUN: FileCheck < %t.txt %s --check-prefix=CHECK-SPIRV
3+
; RUN: FileCheck < %t.txt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-TYPED-PTR
44
; RUN: llvm-spirv %t.bc -o %t.spv
55
; RUN: llvm-spirv -r --spirv-target-env=SPV-IR %t.spv -o %t.rev.bc
66
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-SPV-IR
77

8+
; RUN: llvm-spirv %t.bc -o %t.spv --spirv-ext=+SPV_KHR_untyped_pointers
9+
; RUN: llvm-spirv %t.bc -spirv-text -o %t.txt --spirv-ext=+SPV_KHR_untyped_pointers
10+
; RUN: FileCheck < %t.txt %s --check-prefixes=CHECK-SPIRV,CHECK-SPIRV-UNTYPED-PTR
11+
; RUN: llvm-spirv -r --spirv-target-env=SPV-IR %t.spv -o %t.rev.bc
12+
; RUN: llvm-dis < %t.rev.bc | FileCheck %s --check-prefix=CHECK-SPV-IR
13+
814

915
; CHECK-SPV-IR: %"[[CL_PIPE_STORAGE_NAME:[^"]+]]" = type { ptr addrspace(1) }
1016
; CHECK-SPV-IR: %"[[CL_READ_PIPE_NAME:[^"]+read>]]" = type { target("spirv.Pipe", 0) }
@@ -61,8 +67,8 @@ entry:
6167
; CHECK-SPV-IR: %[[ID1:[0-9]+]] = getelementptr %"[[CL_PIPE_STORAGE_NAME]]", ptr addrspace(4) %[[ID0]], i32 0, i32 0
6268

6369
; CHECK-SPIRV: PtrCastToGeneric {{[0-9]+}} [[SPIRV0:[0-9]+]] [[PIPE_STORAGE_ID]]
64-
; CHECK-SPIRV: PtrAccessChain {{[0-9]+}} [[SPIRV1:[0-9]+]] [[SPIRV0]] [[CONSTANT_ZERO_ID]] [[CONSTANT_ZERO_ID]]
65-
70+
; CHECK-SPIRV-TYPED-PTR: PtrAccessChain {{[0-9]+}} [[SPIRV1:[0-9]+]] [[SPIRV0]] [[CONSTANT_ZERO_ID]] [[CONSTANT_ZERO_ID]]
71+
; CHECK-SPIRV-UNTYPED-PTR: UntypedPtrAccessChainKHR {{[0-9]+}} [[SPIRV1:[0-9]+]] [[#]] [[SPIRV0]] [[CONSTANT_ZERO_ID]] [[CONSTANT_ZERO_ID]]
6672
%0 = addrspacecast ptr addrspace(1) @mygpipe to ptr addrspace(4)
6773
%1 = getelementptr %"class.cl::pipe_storage<int __attribute__((ext_vector_type(4))), 1>", ptr addrspace(4) %0, i32 0, i32 0
6874

0 commit comments

Comments
 (0)