1
1
; RUN: opt -passes=compile-time-properties -S %s -o %t.ll
2
2
; RUN: FileCheck %s -input-file=%t.ll
3
3
;
4
- ; Tests the translation of "sycl-alignment" to alignment attributes on load/store
4
+ ; Tests the translation of "sycl-alignment" to alignment attributes on load/store/non-memory instructions
5
5
6
6
target triple = "spir64_fpga-unknown-unknown"
7
7
@@ -11,13 +11,14 @@ target triple = "spir64_fpga-unknown-unknown"
11
11
$_ZN7ann_refIiEC2EPi = comdat any
12
12
$_ZN7ann_refIiEcvRiEv = comdat any
13
13
$_ZN7ann_refIiEC2EPi1= comdat any
14
+ $no_load_store = comdat any
14
15
15
16
@.str = private unnamed_addr addrspace (1 ) constant [16 x i8 ] c "sycl-properties\00 " , section "llvm.metadata"
16
17
@.str.1 = private unnamed_addr addrspace (1 ) constant [9 x i8 ] c "main.cpp\00 " , section "llvm.metadata"
17
18
@.str.2 = private unnamed_addr addrspace (1 ) constant [15 x i8 ] c "sycl-alignment\00 " , section "llvm.metadata"
18
19
@.str.3 = private unnamed_addr addrspace (1 ) constant [3 x i8 ] c "64\00 " , section "llvm.metadata"
19
- @.args = private unnamed_addr addrspace (1 ) constant { ptr addrspace (1 ), ptr addrspace (1 ) } { ptr addrspace (1 ) @.str.2 , ptr addrspace (1 ) @.str.3 }, section "llvm.met
20
- adata "
20
+ @.args = private unnamed_addr addrspace (1 ) constant { ptr addrspace (1 ), ptr addrspace (1 ) } { ptr addrspace (1 ) @.str.2 , ptr addrspace (1 ) @.str.3 }, section "llvm.metadata"
21
+ ; CHECK: @[[AnnoStr:.*]] = private unnamed_addr addrspace(1) constant [10 x i8] c"{44:\2264\22}\00 "
21
22
22
23
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite)
23
24
declare ptr addrspace (4 ) @llvm.ptr.annotation.p4.p1 (ptr addrspace (4 ), ptr addrspace (1 ), ptr addrspace (1 ), i32 , ptr addrspace (1 )) #5
@@ -77,4 +78,19 @@ entry:
77
78
ret void
78
79
}
79
80
81
+ ; Function Attrs: convergent mustprogress noinline norecurse nounwind optnone
82
+ define linkonce_odr dso_local spir_func noundef ptr addrspace (4 ) @no_load_store (ptr addrspace (4 ) noundef %ptr ) comdat align 2 {
83
+ entry:
84
+ %retval = alloca ptr addrspace (4 ), align 8
85
+ %ptr.addr = alloca ptr addrspace (4 ), align 8
86
+ %retval.ascast = addrspacecast ptr %retval to ptr addrspace (4 )
87
+ %ptr.addr.ascast = addrspacecast ptr %ptr.addr to ptr addrspace (4 )
88
+ store ptr addrspace (4 ) %ptr , ptr addrspace (4 ) %ptr.addr.ascast , align 8
89
+ %0 = load ptr addrspace (4 ), ptr addrspace (4 ) %ptr.addr.ascast , align 8
90
+ ; CHECK: %[[AnnoPtr:.*]] = call ptr addrspace(4) @llvm.ptr.annotation.p4.p1(ptr addrspace(4) %0, ptr addrspace(1) @[[AnnoStr]]
91
+ ; CHECK: ret ptr addrspace(4) %[[AnnoPtr]]
92
+ %1 = call ptr addrspace (4 ) @llvm.ptr.annotation.p4.p1 (ptr addrspace (4 ) %0 , ptr addrspace (1 ) @.str , ptr addrspace (1 ) @.str.1 , i32 73 , ptr addrspace (1 ) @.args )
93
+ ret ptr addrspace (4 ) %1
94
+ }
95
+
80
96
declare void @llvm.memcpy.p4.p4.i32 (ptr addrspace (4 ), ptr addrspace (4 ), i32 , i1 )
0 commit comments