@@ -29,3 +29,31 @@ define ptr @f2() {
29
29
;
30
30
ret ptr getelementptr (ptr , ptr getelementptr inbounds inrange(0 , 8 ) ([3 x ptr ], ptr @vt , i64 0 , i64 1 ), i64 3 )
31
31
}
32
+
33
+ define ptr @f3 () {
34
+ ; CHECK-LABEL: @f3(
35
+ ; CHECK-NEXT: ret ptr getelementptr inbounds nuw inrange(-8, 0) (i8, ptr @vt, i64 16)
36
+ ;
37
+ ret ptr getelementptr inrange(-16 , 8 ) (ptr , ptr getelementptr inbounds inrange(0 , 8 ) ([3 x ptr ], ptr @vt , i64 0 , i64 1 ), i64 1 )
38
+ }
39
+
40
+ define ptr @f4 () {
41
+ ; CHECK-LABEL: @f4(
42
+ ; CHECK-NEXT: ret ptr getelementptr inbounds nuw inrange(-8, 8) (i8, ptr @vt, i64 16)
43
+ ;
44
+ ret ptr getelementptr inrange(-16 , 8 ) (ptr , ptr getelementptr inbounds inrange(0 , 24 ) ([3 x ptr ], ptr @vt , i64 0 , i64 1 ), i64 1 )
45
+ }
46
+
47
+ define ptr @f5 () {
48
+ ; CHECK-LABEL: @f5(
49
+ ; CHECK-NEXT: ret ptr getelementptr inbounds nuw inrange(0, 0) (i8, ptr @vt, i64 16)
50
+ ;
51
+ ret ptr getelementptr inrange(0 , 8 ) (ptr , ptr getelementptr inbounds inrange(0 , 8 ) ([3 x ptr ], ptr @vt , i64 0 , i64 0 ), i64 2 )
52
+ }
53
+
54
+ define ptr @f6 () {
55
+ ; CHECK-LABEL: @f6(
56
+ ; CHECK-NEXT: ret ptr getelementptr inbounds nuw inrange(-8, 8) (i8, ptr @vt, i64 16)
57
+ ;
58
+ ret ptr getelementptr inrange(-8 , 8 ) (ptr , ptr getelementptr inbounds inrange(-8 , 16 ) ([3 x ptr ], ptr @vt , i64 0 , i64 1 ), i64 1 )
59
+ }
0 commit comments