@@ -65,3 +65,25 @@ entry:
6565 %0 = load i32 , ptr %arrayidx1 , align 1
6666 ret i32 %0
6767}
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