forked from llvm/llvm-project
- Notifications
You must be signed in to change notification settings - Fork 339
/
Copy pathunderlying-object-different-address-spaces.ll
39 lines (35 loc) · 1.47 KB
/
underlying-object-different-address-spaces.ll
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 5
; RUN: opt -passes='print<access-info>' -disable-output %s 2>&1 | FileCheck %s
targetdatalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
; Test case for https://github.com/llvm/llvm-project/issues/124759. The same
; underlying object is access through pointers with different address spaces.
definevoid@same_underlying_object_different_address_spaces(ptr%dst1.as1, ptr%dst2.as1) {
; CHECK-LABEL: 'same_underlying_object_different_address_spaces'
; CHECK-NEXT: loop:
; CHECK-NEXT: Report: cannot identify array bounds
; CHECK-NEXT: Dependences:
; CHECK-NEXT: Run-time memory checks:
; CHECK-NEXT: Grouped accesses:
; CHECK-EMPTY:
; CHECK-NEXT: Non vectorizable stores to invariant address were not found in loop.
; CHECK-NEXT: SCEV assumptions:
; CHECK-EMPTY:
; CHECK-NEXT: Expressions re-written:
;
entry:
%alloc = allocai8, i640, align128
%as3 = addrspacecast ptr%alloctoptraddrspace(3)
%as4 = addrspacecast ptr%alloctoptraddrspace(4)
brlabel%loop
loop:
%iv = phii64 [ 0, %entry ], [ %iv.next, %loop ]
storei320, ptraddrspace(4) %as4, align4
storei320, ptr%dst1.as1, align4
%l = loadi64, ptraddrspace(3) %as3, align4
storei64%l, ptr%dst2.as1, align4
%iv.next = addi64%iv, 1
%c = icmpeqi64%iv.next, 100
bri1%c, label%loop, label%exit
exit:
retvoid
}