@@ -41,7 +41,10 @@ declare [4 x float] @__enzyme_batch(...)
41
41
42
42
; CHECK: do.body: ; preds = %do.body, %entry
43
43
; CHECK-NEXT: %i = phi i64 [ %inc, %do.body ], [ 0, %entry ]
44
- ; CHECK-NEXT: %intsum = phi i32 [ 0, %entry ], [ %intadd, %do.body ]
44
+ ; CHECK-NEXT: %intsum0 = phi i32 [ 0, %entry ], [ %intadd0, %do.body ]
45
+ ; CHECK-NEXT: %intsum = phi i32 [ 0, %entry ], [ %intadd1, %do.body ]
46
+ ; CHECK-NEXT: %intsum1 = phi i32 [ 0, %entry ], [ %intadd2, %do.body ]
47
+ ; CHECK-NEXT: %intsum2 = phi i32 [ 0, %entry ], [ %intadd3, %do.body ]
45
48
; CHECK-NEXT: %arrayidx0 = getelementptr inbounds float, float* %unwrap.array0, i64 %i
46
49
; CHECK-NEXT: %arrayidx1 = getelementptr inbounds float, float* %unwrap.array1, i64 %i
47
50
; CHECK-NEXT: %arrayidx2 = getelementptr inbounds float, float* %unwrap.array2, i64 %i
@@ -50,21 +53,30 @@ declare [4 x float] @__enzyme_batch(...)
50
53
; CHECK-NEXT: %loaded1 = load float, float* %arrayidx1
51
54
; CHECK-NEXT: %loaded2 = load float, float* %arrayidx2
52
55
; CHECK-NEXT: %loaded3 = load float, float* %arrayidx3
53
- ; CHECK-NEXT: %fltload = bitcast i32 %intsum to float
54
- ; CHECK-NEXT: %add0 = fadd float %fltload, %loaded0
55
- ; CHECK-NEXT: %add1 = fadd float %fltload, %loaded1
56
- ; CHECK-NEXT: %add2 = fadd float %fltload, %loaded2
57
- ; CHECK-NEXT: %add3 = fadd float %fltload, %loaded3
58
- ; CHECK-NEXT: %intadd = bitcast float %add0 to i32
56
+ ; CHECK-NEXT: %fltload0 = bitcast i32 %intsum0 to float
57
+ ; CHECK-NEXT: %fltload1 = bitcast i32 %intsum to float
58
+ ; CHECK-NEXT: %fltload2 = bitcast i32 %intsum1 to float
59
+ ; CHECK-NEXT: %fltload3 = bitcast i32 %intsum2 to float
60
+ ; CHECK-NEXT: %add0 = fadd float %fltload0, %loaded0
61
+ ; CHECK-NEXT: %add1 = fadd float %fltload1, %loaded1
62
+ ; CHECK-NEXT: %add2 = fadd float %fltload2, %loaded2
63
+ ; CHECK-NEXT: %add3 = fadd float %fltload3, %loaded3
64
+ ; CHECK-NEXT: %intadd0 = bitcast float %add0 to i32
65
+ ; CHECK-NEXT: %intadd1 = bitcast float %add1 to i32
66
+ ; CHECK-NEXT: %intadd2 = bitcast float %add2 to i32
67
+ ; CHECK-NEXT: %intadd3 = bitcast float %add3 to i32
59
68
; CHECK-NEXT: %inc = add nuw nsw i64 %i, 1
60
69
; CHECK-NEXT: %cmp = icmp eq i64 %inc, 5
61
70
; CHECK-NEXT: br i1 %cmp, label %do.end, label %do.body
62
71
63
72
; CHECK: do.end: ; preds = %do.body
64
- ; CHECK-NEXT: %lcssa = phi float [ %add0, %do.body ]
65
- ; CHECK-NEXT: %mrv = insertvalue [4 x float] undef, float %lcssa, 0
66
- ; CHECK-NEXT: %mrv1 = insertvalue [4 x float] %mrv, float %lcssa, 1
67
- ; CHECK-NEXT: %mrv2 = insertvalue [4 x float] %mrv1, float %lcssa, 2
68
- ; CHECK-NEXT: %mrv3 = insertvalue [4 x float] %mrv2, float %lcssa, 3
69
- ; CHECK-NEXT: ret [4 x float] %mrv3
73
+ ; CHECK-NEXT: %lcssa0 = phi float [ %add0, %do.body ]
74
+ ; CHECK-NEXT: %lcssa = phi float [ %add1, %do.body ]
75
+ ; CHECK-NEXT: %lcssa3 = phi float [ %add2, %do.body ]
76
+ ; CHECK-NEXT: %lcssa4 = phi float [ %add3, %do.body ]
77
+ ; CHECK-NEXT: %mrv = insertvalue [4 x float] undef, float %lcssa0, 0
78
+ ; CHECK-NEXT: %mrv5 = insertvalue [4 x float] %mrv, float %lcssa, 1
79
+ ; CHECK-NEXT: %mrv6 = insertvalue [4 x float] %mrv5, float %lcssa3, 2
80
+ ; CHECK-NEXT: %mrv7 = insertvalue [4 x float] %mrv6, float %lcssa4, 3
81
+ ; CHECK-NEXT: ret [4 x float] %mrv7
70
82
; CHECK-NEXT: }
0 commit comments