annotate test/Verifier/non-integral-pointers.ll @ 146:3fc4d5c3e21e

set tail call flag for code segment in CGCAll
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 19:23:36 +0900
parents 1172e4bd9c6f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
1 ; RUN: not opt -verify < %s 2>&1 | FileCheck %s
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
2
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
3 target datalayout = "e-ni:4:6"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
4
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
5 define i64 @f_0(i8 addrspace(4)* %ptr) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
6 ; CHECK: ptrtoint not supported for non-integral pointers
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
7 %val = ptrtoint i8 addrspace(4)* %ptr to i64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
8 ret i64 %val
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
9 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
10
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
11 define <4 x i64> @f_1(<4 x i8 addrspace(4)*> %ptr) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
12 ; CHECK: ptrtoint not supported for non-integral pointers
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
13 %val = ptrtoint <4 x i8 addrspace(4)*> %ptr to <4 x i64>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
14 ret <4 x i64> %val
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
15 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
17 define i64 @f_2(i8 addrspace(3)* %ptr) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
18 ; Negative test
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
19 %val = ptrtoint i8 addrspace(3)* %ptr to i64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
20 ret i64 %val
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
21 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
22
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
23 define i8 addrspace(4)* @f_3(i64 %integer) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
24 ; CHECK: inttoptr not supported for non-integral pointers
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
25 %val = inttoptr i64 %integer to i8 addrspace(4)*
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
26 ret i8 addrspace(4)* %val
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
27 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
28
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
29 define <4 x i8 addrspace(4)*> @f_4(<4 x i64> %integer) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
30 ; CHECK: inttoptr not supported for non-integral pointers
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
31 %val = inttoptr <4 x i64> %integer to <4 x i8 addrspace(4)*>
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
32 ret <4 x i8 addrspace(4)*> %val
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
33 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
34
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
35 define i8 addrspace(3)* @f_5(i64 %integer) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
36 ; Negative test
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
37 %val = inttoptr i64 %integer to i8 addrspace(3)*
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
38 ret i8 addrspace(3)* %val
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
39 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
40
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
41 define i64 @f_6(i8 addrspace(6)* %ptr) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
42 ; CHECK: ptrtoint not supported for non-integral pointers
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
43 %val = ptrtoint i8 addrspace(6)* %ptr to i64
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
44 ret i64 %val
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
45 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
46
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
47 define i8 addrspace(4)* @f_7() {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
48 ; CHECK: inttoptr not supported for non-integral pointers
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
49 ret i8 addrspace(4)* inttoptr (i64 50 to i8 addrspace(4)*)
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
50 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
51
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
52 @global0 = addrspace(4) constant i8 42
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
53
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
54 define i64 @f_8() {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
55 ; CHECK: ptrtoint not supported for non-integral pointers
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
56 ret i64 ptrtoint (i8 addrspace(4)* @global0 to i64)
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
57 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
58
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
59 define i8 addrspace(4)* @f_9() {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
60 ; CHECK: inttoptr not supported for non-integral pointers
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
61 ret i8 addrspace(4)* getelementptr (i8, i8 addrspace(4)* inttoptr (i64 55 to i8 addrspace(4)*), i32 100)
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
62 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
63
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
64 @global1 = addrspace(4) constant i8 42
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
65
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
66 define i8 addrspace(4)* @f_10() {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
67 ; CHECK: ptrtoint not supported for non-integral pointers
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
68 ret i8 addrspace(4)* getelementptr (i8, i8 addrspace(4)* @global0, i64 ptrtoint (i8 addrspace(4)* @global1 to i64))
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
69 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
70
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
71 @cycle_0 = addrspace(4) constant i64 ptrtoint (i64 addrspace(4)* addrspace(4)* @cycle_1 to i64)
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
72 @cycle_1 = addrspace(4) constant i64 addrspace(4) * @cycle_0
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
73
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
74 define i64 addrspace(4)* addrspace(4)* @f_11() {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
75 ; CHECK: ptrtoint not supported for non-integral pointers
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
76 ret i64 addrspace(4)* addrspace(4)* @cycle_1
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
77 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
78
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
79 @cycle_self = addrspace(4) constant i64 ptrtoint (i64 addrspace(4)* @cycle_self to i64)
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
80
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
81 define i64 addrspace(4)* @f_12() {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
82 ; CHECK: ptrtoint not supported for non-integral pointers
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
83 ret i64 addrspace(4)* @cycle_self
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
84 }