@@ -15,7 +15,7 @@ void *f2(void *a, int b) { return a + b; }
15
15
// LLVM: %[[PTR:.*]] = load ptr, ptr {{.*}}, align 8
16
16
// LLVM: %[[TOEXT:.*]] = load i32, ptr {{.*}}, align 4
17
17
// LLVM: %[[STRIDE:.*]] = sext i32 %[[TOEXT]] to i64
18
- // LLVM: getelementptr i8, ptr %[[PTR]], i64 %[[STRIDE]]
18
+ // LLVM: getelementptr inbounds i8, ptr %[[PTR]], i64 %[[STRIDE]]
19
19
20
20
// These test the same paths above, just make sure it does not crash.
21
21
void * f2_0 (void * a , int b ) { return & a [b ]; }
@@ -28,7 +28,7 @@ void *f3_1(int a, void *b) { return (a += b); }
28
28
// CIR: cir.cast(ptr_to_int, %[[NEW_PTR]] : !cir.ptr<!void>), !s32i
29
29
30
30
// LLVM-LABEL: @f3_1
31
- // LLVM: %[[NEW_PTR:.*]] = getelementptr
31
+ // LLVM: %[[NEW_PTR:.*]] = getelementptr inbounds
32
32
// LLVM: ptrtoint ptr %[[NEW_PTR]] to i32
33
33
34
34
void * f4 (void * a , int b ) { return a - b ; }
@@ -43,7 +43,7 @@ void *f4(void *a, int b) { return a - b; }
43
43
// LLVM: %[[TOEXT:.*]] = load i32, ptr {{.*}}, align 4
44
44
// LLVM: %[[STRIDE:.*]] = sext i32 %[[TOEXT]] to i64
45
45
// LLVM: %[[SUB:.*]] = sub i64 0, %[[STRIDE]]
46
- // LLVM: getelementptr i8, ptr %[[PTR]], i64 %[[SUB]]
46
+ // LLVM: getelementptr inbounds i8, ptr %[[PTR]], i64 %[[SUB]]
47
47
48
48
// Similar to f4, just make sure it does not crash.
49
49
void * f4_1 (void * a , int b ) { return (a -= b ); }
@@ -58,7 +58,7 @@ FP f5(FP a, int b) { return a + b; }
58
58
// LLVM: %[[PTR:.*]] = load ptr, ptr {{.*}}, align 8
59
59
// LLVM: %[[TOEXT:.*]] = load i32, ptr {{.*}}, align 4
60
60
// LLVM: %[[STRIDE:.*]] = sext i32 %[[TOEXT]] to i64
61
- // LLVM: getelementptr i8, ptr %[[PTR]], i64 %[[STRIDE]]
61
+ // LLVM: getelementptr inbounds i8, ptr %[[PTR]], i64 %[[STRIDE]]
62
62
63
63
// These test the same paths above, just make sure it does not crash.
64
64
FP f5_1 (FP a , int b ) { return (a += b ); }
@@ -77,7 +77,7 @@ FP f7(FP a, int b) { return a - b; }
77
77
// LLVM: %[[TOEXT:.*]] = load i32, ptr {{.*}}, align 4
78
78
// LLVM: %[[STRIDE:.*]] = sext i32 %[[TOEXT]] to i64
79
79
// LLVM: %[[SUB:.*]] = sub i64 0, %[[STRIDE]]
80
- // LLVM: getelementptr i8, ptr %[[PTR]], i64 %[[SUB]]
80
+ // LLVM: getelementptr inbounds i8, ptr %[[PTR]], i64 %[[SUB]]
81
81
82
82
// Similar to f7, just make sure it does not crash.
83
83
FP f7_1 (FP a , int b ) { return (a -= b ); }
@@ -93,7 +93,7 @@ void f8(void *a, int b) { return *(a + b); }
93
93
// LLVM: %[[PTR:.*]] = load ptr, ptr {{.*}}, align 8
94
94
// LLVM: %[[TOEXT:.*]] = load i32, ptr {{.*}}, align 4
95
95
// LLVM: %[[STRIDE:.*]] = sext i32 %[[TOEXT]] to i64
96
- // LLVM: getelementptr i8, ptr %[[PTR]], i64 %[[STRIDE]]
96
+ // LLVM: getelementptr inbounds i8, ptr %[[PTR]], i64 %[[STRIDE]]
97
97
// LLVM: ret void
98
98
99
99
void f8_1 (void * a , int b ) { return a [b ]; }
@@ -107,7 +107,7 @@ void f8_1(void *a, int b) { return a[b]; }
107
107
// LLVM: %[[PTR:.*]] = load ptr, ptr {{.*}}, align 8
108
108
// LLVM: %[[TOEXT:.*]] = load i32, ptr {{.*}}, align 4
109
109
// LLVM: %[[STRIDE:.*]] = sext i32 %[[TOEXT]] to i64
110
- // LLVM: getelementptr i8, ptr %[[PTR]], i64 %[[STRIDE]]
110
+ // LLVM: getelementptr inbounds i8, ptr %[[PTR]], i64 %[[STRIDE]]
111
111
// LLVM: ret void
112
112
113
113
unsigned char * p (unsigned int x ) {
@@ -121,4 +121,4 @@ unsigned char *p(unsigned int x) {
121
121
// CIR: cir.ptr_stride({{.*}} : !cir.ptr<!u8i>, %[[SUB]] : !u32i), !cir.ptr<!u8i>
122
122
123
123
// LLVM-LABEL: @p
124
- // LLVM: getelementptr i8, ptr {{.*}}
124
+ // LLVM: getelementptr inbounds i8, ptr {{.*}}
0 commit comments