@@ -65,3 +65,25 @@ entry:
65
65
%0 = load i32 , ptr %arrayidx1 , align 1
66
66
ret i32 %0
67
67
}
68
+
69
+ define i32 @gep_i8_vs_i32 (ptr nocapture %A , i64 %n , i64 %m ) {
70
+ ; CHECK-LABEL: 'gep_i8_vs_i32'
71
+ ; CHECK-NEXT: Src: store i32 42, ptr %arrayidx0, align 1 --> Dst: store i32 42, ptr %arrayidx0, align 1
72
+ ; CHECK-NEXT: da analyze - none!
73
+ ; CHECK-NEXT: Src: store i32 42, ptr %arrayidx0, align 1 --> Dst: store i32 42, ptr %arrayidx1, align 4
74
+ ; CHECK-NEXT: da analyze - output [|<]!
75
+ ; CHECK-NEXT: Runtime Assumptions:
76
+ ; CHECK-NEXT: Equal predicate: (zext i2 (trunc i64 %n to i2) to i64) == 0
77
+ ; CHECK-NEXT: Src: store i32 42, ptr %arrayidx1, align 4 --> Dst: store i32 42, ptr %arrayidx1, align 4
78
+ ; CHECK-NEXT: da analyze - none!
79
+ ; CHECK-NEXT: Runtime Assumptions:
80
+ ; CHECK-NEXT: Equal predicate: (zext i2 (trunc i64 %n to i2) to i64) == 0
81
+ ;
82
+ entry:
83
+ %arrayidx0 = getelementptr inbounds i8 , ptr %A , i64 %n
84
+ store i32 42 , ptr %arrayidx0 , align 1
85
+
86
+ %arrayidx1 = getelementptr inbounds i32 , ptr %A , i64 %m
87
+ store i32 42 , ptr %arrayidx1 , align 4
88
+ ret i32 0
89
+ }
0 commit comments