Skip to content

Commit 65150b8

Browse files
authored
Fix illegal invariant group on unwrap (rust-lang#905)
1 parent 17b83da commit 65150b8

23 files changed

+119
-71
lines changed

enzyme/Enzyme/GradientUtils.cpp

-11
Original file line numberDiff line numberDiff line change
@@ -5241,17 +5241,6 @@ Value *GradientUtils::lookupM(Value *val, IRBuilder<> &BuilderM,
52415241
if (op) {
52425242
assert(op);
52435243
assert(op->getType());
5244-
if (auto load_op = dyn_cast<LoadInst>(prelcssaInst)) {
5245-
if (auto new_op = dyn_cast<LoadInst>(op)) {
5246-
MDNode *invgroup =
5247-
load_op->getMetadata(LLVMContext::MD_invariant_group);
5248-
if (invgroup == nullptr) {
5249-
invgroup = MDNode::getDistinct(load_op->getContext(), {});
5250-
load_op->setMetadata(LLVMContext::MD_invariant_group, invgroup);
5251-
}
5252-
new_op->setMetadata(LLVMContext::MD_invariant_group, invgroup);
5253-
}
5254-
}
52555244
if (op->getType() != inst->getType()) {
52565245
llvm::errs() << " op: " << *op << " inst: " << *inst << "\n";
52575246
}

enzyme/test/Enzyme/ReverseMode/alloclut.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ declare double @__enzyme_autodiff(double (double, i32*)*, ...)
9797
; CHECK-NEXT: %9 = getelementptr inbounds [2 x double], [2 x double]* %val_malloccache, i64 %"iv'ac.0"
9898
; CHECK-NEXT: %idx_unwrap = add i64 %"iv'ac.0", %"iv1'ac.0"
9999
; CHECK-NEXT: %zgep_unwrap = getelementptr inbounds i32, i32* %z, i64 %idx_unwrap
100-
; CHECK-NEXT: %lu_unwrap = load i32, i32* %zgep_unwrap, align 4, !invariant.group !
100+
; CHECK-NEXT: %lu_unwrap = load i32, i32* %zgep_unwrap, align 4
101101
; CHECK-NEXT: %10 = getelementptr inbounds [2 x double], [2 x double]* %9, i64 0, i32 %lu_unwrap
102102
; CHECK-NEXT: %11 = load double, double* %10, align 8, !invariant.group !
103103
; CHECK-NEXT: %m0diffeval = fmul fast double %"add'de.1", %11

enzyme/test/Enzyme/ReverseMode/allocnotape.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ attributes #4 = { nounwind }
120120
; CHECK: invertfor.body5: ; preds = %for.body5, %incinvertfor.body5
121121
; CHECK-NEXT: %"iv1'ac.0" = phi i64 [ %[[a7:.+]], %incinvertfor.body5 ], [ 19, %for.body5 ]
122122
; CHECK-NEXT: %arrayidx9_unwrap = getelementptr inbounds [20 x i32], [20 x i32]* %tmp, i64 0, i64 %"iv1'ac.0"
123-
; CHECK-NEXT: %_unwrap = load i32, i32* %arrayidx9_unwrap, align 4, !tbaa ![[itbaa]], !invariant.group !
123+
; CHECK-NEXT: %_unwrap = load i32, i32* %arrayidx9_unwrap, align 4, !tbaa ![[itbaa]]
124124
; CHECK-NEXT: %conv_unwrap = sitofp i32 %_unwrap to double
125125
; CHECK-NEXT: %m0diffe = fmul fast double %conv_unwrap, %differeturn
126126
; CHECK-NEXT: %"arrayidx7'ipg_unwrap" = getelementptr inbounds double, double* %"x'", i64 %"iv1'ac.0"

enzyme/test/Enzyme/ReverseMode/condswload.ll

+3-3
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,17 @@ entry:
7979

8080
; CHECK: invertend_phirc: ; preds = %invertend
8181
; CHECK-NEXT: %g3_unwrap = getelementptr inbounds double, double* %a, i32 128
82-
; CHECK-NEXT: %l3_unwrap = load double, double* %g3_unwrap, align 8, !invariant.group !
82+
; CHECK-NEXT: %l3_unwrap = load double, double* %g3_unwrap, align 8
8383
; CHECK-NEXT: br label %invertend_phimerge
8484

8585
; CHECK: invertend_phirc1: ; preds = %invertend
8686
; CHECK-NEXT: %g1_unwrap = getelementptr inbounds double, double* %a, i32 32
87-
; CHECK-NEXT: %l1_unwrap = load double, double* %g1_unwrap, align 8, !invariant.group !
87+
; CHECK-NEXT: %l1_unwrap = load double, double* %g1_unwrap, align 8
8888
; CHECK-NEXT: br label %invertend_phimerge
8989

9090
; CHECK: invertend_phirc2: ; preds = %invertend
9191
; CHECK-NEXT: %g2_unwrap = getelementptr inbounds double, double* %a, i32 64
92-
; CHECK-NEXT: %l2_unwrap = load double, double* %g2_unwrap, align 8, !invariant.group !
92+
; CHECK-NEXT: %l2_unwrap = load double, double* %g2_unwrap, align 8
9393
; CHECK-NEXT: br label %invertend_phimerge
9494

9595
; CHECK: invertend_phimerge:

enzyme/test/Enzyme/ReverseMode/duplicatemallocsubloop_set.ll

+6-6
Original file line numberDiff line numberDiff line change
@@ -124,21 +124,21 @@ attributes #9 = { nounwind }
124124
; CHECK-DAG: %[[a6_unwrap1:.+]] = bitcast i8* %remat_a5 to double*
125125
; CHECK-DAG: %[[_unwrap2:.+]] = trunc i64 %"iv'ac.0" to i32
126126
; CHECK-DAG: %[[a10_unwrap:.+]] = getelementptr inbounds double, double* %a1, i32 %[[_unwrap2]]
127-
; CHECK-DAG: %[[a11_unwrap:.+]] = load double, double* %[[a10_unwrap]], align 8, !invariant.group !
127+
; CHECK-DAG: %[[a11_unwrap:.+]] = load double, double* %[[a10_unwrap]], align 8
128128
; CHECK-NEXT: store double %[[a11_unwrap]], double* %[[a6_unwrap1]], align 8
129129
; CHECK-NEXT: %_unwrap = trunc i64 %"iv'ac.0" to i32
130130
; CHECK-NEXT: %"a13'ipg_unwrap" = getelementptr inbounds double, double* %"a0'", i32 %_unwrap
131131
; CHECK-NEXT: %2 = load double, double* %"a13'ipg_unwrap", align 8
132-
; CHECK-NEXT: store double 0.000000e+00, double* %"a13'ipg_unwrap", align 8, !alias.scope !12, !noalias !15
132+
; CHECK-NEXT: store double 0.000000e+00, double* %"a13'ipg_unwrap", align 8, !alias.scope !11, !noalias !14
133133
; CHECK-NEXT: %a6_unwrap = bitcast i8* %remat_a5 to double*
134134
; CHECK-NEXT: %"a6'ipc_unwrap" = bitcast i8* %"a5'mi" to double*
135135
; CHECK-NEXT: call void @diffef(double* %a6_unwrap, double* %"a6'ipc_unwrap", double %2)
136-
; CHECK-NEXT: %3 = load double, double* %"a6'ipc_unwrap", align 8, !noalias !11
137-
; CHECK-NEXT: store double 0.000000e+00, double* %"a6'ipc_unwrap", align 8, !alias.scope !17, !noalias !20
136+
; CHECK-NEXT: %3 = load double, double* %"a6'ipc_unwrap", align 8, !noalias !10
137+
; CHECK-NEXT: store double 0.000000e+00, double* %"a6'ipc_unwrap", align 8, !alias.scope !16, !noalias !19
138138
; CHECK-NEXT: %"a10'ipg_unwrap" = getelementptr inbounds double, double* %"a1'", i32 %_unwrap
139-
; CHECK-NEXT: %4 = load double, double* %"a10'ipg_unwrap", align 8, !alias.scope !22, !noalias !25
139+
; CHECK-NEXT: %4 = load double, double* %"a10'ipg_unwrap", align 8, !alias.scope !21, !noalias !24
140140
; CHECK-NEXT: %5 = fadd fast double %4, %3
141-
; CHECK-NEXT: store double %5, double* %"a10'ipg_unwrap", align 8, !alias.scope !22, !noalias !25
141+
; CHECK-NEXT: store double %5, double* %"a10'ipg_unwrap", align 8, !alias.scope !21, !noalias !24
142142
; CHECK-NEXT: call void @llvm.memset.p0i8.i64(i8* %"a5'mi", i8 0, i64 8, i1 false)
143143
; CHECK-NEXT: tail call void @free(i8* nonnull %"a5'mi")
144144
; CHECK-NEXT: tail call void @free(i8* %remat_a5)

enzyme/test/Enzyme/ReverseMode/fwdsolve.ll

+4-4
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,9 @@ declare dso_local void @__enzyme_autodiff(i8*, ...)
9797
; CHECK-NEXT: %iv.next2 = add nuw nsw i64 %iv1, 1
9898
; CHECK-NEXT: %add = add i64 %iv1, %mul
9999
; CHECK-NEXT: %arrayidx10 = getelementptr inbounds double, double* %L, i64 %add
100-
; CHECK-NEXT: %3 = load double, double* %arrayidx10, align 8, !tbaa !2, !invariant.group !6
100+
; CHECK-NEXT: %3 = load double, double* %arrayidx10, align 8, !tbaa !2
101101
; CHECK-NEXT: %arrayidx11 = getelementptr inbounds double, double* %out, i64 %iv1
102-
; CHECK-NEXT: %4 = load double, double* %arrayidx11, align 8, !tbaa !2, !invariant.group !7
102+
; CHECK-NEXT: %4 = load double, double* %arrayidx11, align 8, !tbaa !2
103103
; CHECK-NEXT: %mul12 = fmul double %3, %4
104104
; CHECK-NEXT: %sub13 = fsub double %tmp.034, %mul12
105105
; CHECK-NEXT: %exitcond = icmp eq i64 %iv.next2, %[[i1]]
@@ -145,12 +145,12 @@ declare dso_local void @__enzyme_autodiff(i8*, ...)
145145
; CHECK-NEXT: %[[i11:.+]] = {{(fadd|fsub)}} fast double %"mul12'de.1"
146146
; , %[[i9]]
147147
; CHECK-NEXT: %arrayidx11_unwrap = getelementptr inbounds double, double* %out, i64 %"iv1'ac.0"
148-
; CHECK-NEXT: %_unwrap = load double, double* %arrayidx11_unwrap, align 8, !tbaa !2, !invariant.group !7
148+
; CHECK-NEXT: %_unwrap = load double, double* %arrayidx11_unwrap, align 8, !tbaa !2
149149
; CHECK-NEXT: %m0diffe = fmul fast double %[[i11]], %_unwrap
150150
; CHECK-NEXT: %mul_unwrap = mul i64 %"iv'ac.0", %N
151151
; CHECK-NEXT: %add_unwrap = add i64 %"iv1'ac.0", %mul_unwrap
152152
; CHECK-NEXT: %arrayidx10_unwrap = getelementptr inbounds double, double* %L, i64 %add_unwrap
153-
; CHECK-NEXT: %[[_unwrap3:.+]] = load double, double* %arrayidx10_unwrap, align 8, !tbaa !2, !invariant.group !6
153+
; CHECK-NEXT: %[[_unwrap3:.+]] = load double, double* %arrayidx10_unwrap, align 8, !tbaa !2
154154
; CHECK-NEXT: %m1diffe = fmul fast double %[[i11]], %[[_unwrap3]]
155155
; CHECK-NEXT: %[[i12:.+]] = fadd fast double %"'de2.1", %m0diffe
156156
; CHECK-NEXT: %[[i13:.+]] = fadd fast double %"'de3.1", %m1diffe

enzyme/test/Enzyme/ReverseMode/infAllocR.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ attributes #3 = { nounwind }
139139
; CHECK-NEXT: store double 0.000000e+00, double* %"arrayidx5'ipg_unwrap", align 8
140140
; CHECK-NEXT: %m0diffei10 = fmul fast double %[[i6]], %rho0
141141
; CHECK-NEXT: %[[arrayidx4_unwrap5:.+]] = getelementptr inbounds double, double* %i4_unwrap, i64 %"iv1'ac.0"
142-
; CHECK-NEXT: %[[i10_unwrap6:.+]] = load double, double* %[[arrayidx4_unwrap5]], align 8, !invariant.group !
142+
; CHECK-NEXT: %[[i10_unwrap6:.+]] = load double, double* %[[arrayidx4_unwrap5]], align 8
143143
; CHECK-NEXT: %m1differho0 = fmul fast double %[[i6]], %[[i10_unwrap6]]
144144
; CHECK-NEXT: %[[i8]] = fadd fast double %"rho0'de.0", %m1differho0
145145
; CHECK-NEXT: %"arrayidx4'ipg_unwrap" = getelementptr inbounds double, double* %"i4'ipc_unwrap8", i64 %"iv1'ac.0"

enzyme/test/Enzyme/ReverseMode/infAllocR_2.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ attributes #3 = { nounwind }
161161
; CHECK-NEXT: %m0diffei10 = fmul fast double %[[i10]], %rho0
162162
; CHECK-NEXT: %[[sub_unwrap4:.+]] = sub i64 %"iv1'ac.0", 1
163163
; CHECK-NEXT: %[[arrayidx4_unwrap5:.+]] = getelementptr inbounds double, double* %i4_unwrap, i64 %[[sub_unwrap4]]
164-
; CHECK-NEXT: %[[i10_unwrap6:.+]] = load double, double* %[[arrayidx4_unwrap5]], align 8, !invariant.group !
164+
; CHECK-NEXT: %[[i10_unwrap6:.+]] = load double, double* %[[arrayidx4_unwrap5]], align 8
165165
; CHECK-NEXT: %m1differho0 = fmul fast double %[[i10]], %[[i10_unwrap6]]
166166
; CHECK-NEXT: %[[i11:.+]] = fadd fast double %"i10'de.1", %m0diffei10
167167
; CHECK-NEXT: %[[i12]] = fadd fast double %"rho0'de.1", %m1differho0

enzyme/test/Enzyme/ReverseMode/loopremat.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ attributes #4 = { nounwind }
168168

169169
; CHECK: remat_loop_loopExit: ; preds = %remat_loop_setLoop
170170
; CHECK-NEXT: %i7_unwrap = getelementptr inbounds [30 x double], [30 x double]* %i, i64 0, i64 %"iv'ac.0"
171-
; CHECK-NEXT: %i8_unwrap = load double, double* %i7_unwrap, align 8, !tbaa !2, !invariant.group !
171+
; CHECK-NEXT: %i8_unwrap = load double, double* %i7_unwrap, align 8, !tbaa !2
172172
; CHECK-NEXT: %m0diffei8 = fmul fast double %"i10'de.0", %i8_unwrap
173173
; CHECK-NEXT: %20 = fadd fast double %m0diffei8, %m0diffei8
174174
; CHECK-NEXT: %"i7'ipg_unwrap" = getelementptr inbounds [30 x double], [30 x double]* %"i'ipa", i64 0, i64 %"iv'ac.0"

enzyme/test/Enzyme/ReverseMode/looprematmalloc.ll

+1-1
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ attributes #4 = { nounwind }
197197

198198
; CHECK: remat_loop_loopExit: ; preds = %remat_loop_setLoop
199199
; CHECK-NEXT: %i7_unwrap = getelementptr inbounds [30 x double], [30 x double]* %i_unwrap, i64 0, i64 %"iv'ac.0"
200-
; CHECK-NEXT: %i8_unwrap = load double, double* %i7_unwrap, align 8, !tbaa !2, !invariant.group !
200+
; CHECK-NEXT: %i8_unwrap = load double, double* %i7_unwrap, align 8, !tbaa !2
201201
; CHECK-NEXT: %m0diffei8 = fmul fast double %"i10'de.0", %i8_unwrap
202202
; CHECK-NEXT: %20 = fadd fast double %m0diffei8, %m0diffei8
203203
; CHECK-NEXT: %"i'ipc_unwrap8" = bitcast i8* %"i1'mi" to [30 x double]*

enzyme/test/Enzyme/ReverseMode/maxlimitdouble.ll

+5-5
Original file line numberDiff line numberDiff line change
@@ -19128,22 +19128,22 @@ attributes #28 = { builtin }
1912819128
; CHECK-NEXT: %minim132_unwrap = select i1 %tmp12_unwrap, i64 0, i64 %tmp18_unwrap
1912919129
; CHECK-NEXT: %im1j_unwrap = add nuw nsw i64 %"iv1'ac.0", %minim132_unwrap
1913019130
; CHECK-NEXT: %tmp43_unwrap = getelementptr inbounds double, double* %arg3, i64 %im1j_unwrap
19131-
; CHECK-NEXT: %vim1j_unwrap = load double, double* %tmp43_unwrap, align 8, !tbaa !31, !invariant.group !
19131+
; CHECK-NEXT: %vim1j_unwrap = load double, double* %tmp43_unwrap, align 8, !tbaa !31
1913219132
; CHECK-NEXT: %tmp56_unwrap = fadd fast double %vim1j_unwrap, %v0
1913319133
; CHECK-NEXT: %tmp13_unwrap = icmp eq i64 %"iv'ac.0", 31
1913419134
; CHECK-NEXT: %ip132_unwrap = add i64 %i32_unwrap, 32
1913519135
; CHECK-NEXT: %maxip132_unwrap = select i1 %tmp13_unwrap, i64 992, i64 %ip132_unwrap
1913619136
; CHECK-NEXT: %ip1j_unwrap = add nuw nsw i64 %"iv1'ac.0", %maxip132_unwrap
1913719137
; CHECK-NEXT: %tmp46_unwrap = getelementptr inbounds double, double* %arg3, i64 %ip1j_unwrap
19138-
; CHECK-NEXT: %vip1j_unwrap = load double, double* %tmp46_unwrap, align 8, !tbaa !31, !invariant.group !
19138+
; CHECK-NEXT: %vip1j_unwrap = load double, double* %tmp46_unwrap, align 8, !tbaa !31
1913919139
; CHECK-NEXT: %tmp57_unwrap = fadd fast double %tmp56_unwrap, %vip1j_unwrap
1914019140
; CHECK-NEXT: %endj_unwrap = icmp eq i64 %"iv1'ac.0", 31
1914119141
; CHECK-NEXT: %iv.next2_unwrap = add nuw nsw i64 %"iv1'ac.0", 1
1914219142
; CHECK-NEXT: %maxjp1_unwrap = select i1 %endj_unwrap, i64 31, i64 %iv.next2_unwrap
1914319143
; CHECK-NEXT: %ijp1_unwrap = add i64 %maxjp1_unwrap, %i32_unwrap
1914419144
; CHECK-NEXT: %ijp1AND_unwrap = and i64 %ijp1_unwrap, 4294967295
1914519145
; CHECK-NEXT: %tmp50_unwrap = getelementptr inbounds double, double* %arg3, i64 %ijp1AND_unwrap
19146-
; CHECK-NEXT: %vijp1_unwrap = load double, double* %tmp50_unwrap, align 8, !tbaa !31, !invariant.group !
19146+
; CHECK-NEXT: %vijp1_unwrap = load double, double* %tmp50_unwrap, align 8, !tbaa !31
1914719147
; CHECK-NEXT: %tmp58_unwrap = fadd fast double %tmp57_unwrap, %vijp1_unwrap
1914819148
; CHECK-NEXT: %tmp28_unwrap = icmp eq i64 %"iv1'ac.0", 0
1914919149
; CHECK-NEXT: %jm1_unwrap = add i64 %"iv1'ac.0", -1
@@ -19152,7 +19152,7 @@ attributes #28 = { builtin }
1915219152
; CHECK-NEXT: %tmp31_ext_unwrap = zext i32 %tmp31_unwrap to i64
1915319153
; CHECK-NEXT: %ijm1_unwrap = add i64 %tmp31_ext_unwrap, %i32_unwrap
1915419154
; CHECK-NEXT: %tmp54_unwrap = getelementptr inbounds double, double* %arg3, i64 %ijm1_unwrap
19155-
; CHECK-NEXT: %vijm1_unwrap = load double, double* %tmp54_unwrap, align 8, !tbaa !31, !invariant.group !
19155+
; CHECK-NEXT: %vijm1_unwrap = load double, double* %tmp54_unwrap, align 8, !tbaa !31
1915619156
; CHECK-NEXT: %sum_unwrap = fadd fast double %tmp58_unwrap, %vijm1_unwrap
1915719157
; CHECK-NEXT: %m0diffeA = fmul fast double %7, %sum_unwrap
1915819158
; CHECK-NEXT: %m1diffesum = fmul fast double %7, %A
@@ -19175,7 +19175,7 @@ attributes #28 = { builtin }
1917519175
; CHECK-NEXT: %17 = fadd fast double %16, %m1diffesum
1917619176
; CHECK-NEXT: store double %17, double* %"tmp43'ipg_unwrap", align 8
1917719177
; CHECK-NEXT: %tmp33_unwrap = getelementptr inbounds double, double* %arg3, i64 %ij_unwrap
19178-
; CHECK-NEXT: %vij_unwrap = load double, double* %tmp33_unwrap, align 8, !tbaa !31, !invariant.group !
19178+
; CHECK-NEXT: %vij_unwrap = load double, double* %tmp33_unwrap, align 8, !tbaa !31
1917919179
; CHECK-NEXT: %m0diffeterm2 = fmul fast double %7, %vij_unwrap
1918019180
; CHECK-NEXT: %tmp61_unwrap = fmul fast double %vij_unwrap, %v0
1918119181
; CHECK-NEXT: %term2_unwrap = fsub fast double %A, %tmp61_unwrap

enzyme/test/Enzyme/ReverseMode/metacachelicm2.ll

+2-2
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ attributes #2 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-
7777
; CHECK-NEXT: %iv = phi i64 [ %iv.next, %for.cond.cleanup4 ], [ 0, %entry ]
7878
; CHECK-NEXT: %iv.next = add nuw nsw i64 %iv, 1
7979
; CHECK-NEXT: %arrayidx = getelementptr inbounds i64, i64* %array, i64 %iv
80-
; CHECK-NEXT: %len = load i64, i64* %arrayidx, align 8, !tbaa !6, !invariant.group ![[g8:[0-9]+]]
80+
; CHECK-NEXT: %len = load i64, i64* %arrayidx, align 8, !tbaa !6
8181
; CHECK-NEXT: %0 = getelementptr inbounds double*, double** %ld_malloccache, i64 %iv
8282
; CHECK-NEXT: %mallocsize = mul nuw nsw i64 %len, 8
8383
; CHECK-NEXT: %[[malloccall3:.+]] = tail call noalias nonnull i8* @malloc(i64 %mallocsize)
@@ -132,7 +132,7 @@ attributes #2 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-
132132
; CHECK-NEXT: store double 0.000000e+00, double* %"arrayidx9'ipg_unwrap", align 8
133133
; CHECK-NEXT: %10 = fadd fast double %"add'de.0", %9
134134
; CHECK-NEXT: %arrayidx_unwrap = getelementptr inbounds i64, i64* %array, i64 %"iv'ac.0"
135-
; CHECK-NEXT: %len_unwrap = load i64, i64* %arrayidx_unwrap, align 8, !tbaa !6, !invariant.group ![[g8]]
135+
; CHECK-NEXT: %len_unwrap = load i64, i64* %arrayidx_unwrap, align 8, !tbaa !6
136136
; CHECK-NEXT: %_unwrap = add i64 %len_unwrap, -1
137137
; CHECK-NEXT: br label %invertfor.body5
138138

enzyme/test/Enzyme/ReverseMode/mm.ll

+8-8
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,10 @@ attributes #3 = { argmemonly nounwind }
116116
; CHECK: for.body5: ; preds = %for.inc44, %for.cond2.preheader
117117
; CHECK-NEXT: %iv1 = phi i64 [ %iv.next2, %for.inc44 ], [ 0, %for.cond2.preheader ]
118118
; CHECK-NEXT: %iv.next2 = add nuw nsw i64 %iv1, 1
119-
; CHECK-NEXT: %L_lhs_i = load float, float* %lhs_i, align 8, !tbaa !6, !invariant.group ![[lhsiv:[0-9]+]]
119+
; CHECK-NEXT: %L_lhs_i = load float, float* %lhs_i, align 8, !tbaa !6
120120
; CHECK-NEXT: %[[ivrows:.+]] = mul nsw i64 %iv1, %rows
121121
; CHECK-NEXT: %rhs_ij = getelementptr inbounds float, float* %rhs_data, i64 %[[ivrows]]
122-
; CHECK-NEXT: %L_rhs_ij = load float, float* %rhs_ij, align 8, !tbaa !6, !invariant.group ![[rhsiv:[0-9]+]]
122+
; CHECK-NEXT: %L_rhs_ij = load float, float* %rhs_ij, align 8, !tbaa !6
123123
; CHECK-NEXT: %mul = fmul fast float %L_rhs_ij, %L_lhs_i
124124
; CHECK-NEXT: %mul_ext = fpext float %mul to double
125125
; CHECK-NEXT: %[[ivrowsiv:.+]] = add nsw i64 %[[ivrows]], %iv
@@ -134,10 +134,10 @@ attributes #3 = { argmemonly nounwind }
134134
; CHECK-NEXT: %[[n4rows:.+]] = mul nsw i64 %iv.next4, %rows
135135
; CHECK-NEXT: %[[riv:.+]] = add nsw i64 %[[n4rows]], %iv
136136
; CHECK-NEXT: %lhs_ki = getelementptr inbounds float, float* %lhs_data, i64 %[[riv]]
137-
; CHECK-NEXT: %L_lhs_ki = load float, float* %lhs_ki, align 8, !tbaa !6, !invariant.group !
137+
; CHECK-NEXT: %L_lhs_ki = load float, float* %lhs_ki, align 8, !tbaa !6
138138
; CHECK-NEXT: %[[iv41:.+]] = add nsw i64 %iv.next4, %[[ivrows]]
139139
; CHECK-NEXT: %rhs_kk = getelementptr inbounds float, float* %rhs_data, i64 %[[iv41]]
140-
; CHECK-NEXT: %L_rhs_kk = load float, float* %rhs_kk, align 8, !tbaa !6, !invariant.group !
140+
; CHECK-NEXT: %L_rhs_kk = load float, float* %rhs_kk, align 8, !tbaa !6
141141
; CHECK-NEXT: %mul2 = fmul fast float %L_rhs_kk, %L_lhs_ki
142142
; CHECK-NEXT: %add = fadd fast float %[[fphi]], %mul2
143143
; CHECK-NEXT: %add_ext = fpext float %add to double
@@ -170,10 +170,10 @@ attributes #3 = { argmemonly nounwind }
170170
; CHECK-NEXT: %[[ptrunc:.+]] = fptrunc double %[[oiji]] to float
171171
; CHECK-NEXT: %[[a10:.+]] = fadd fast float %[[a18:.+]], %[[ptrunc]]
172172
; CHECK-NEXT: %lhs_i_unwrap = getelementptr inbounds float, float* %lhs_data, i64 %"iv'ac.0"
173-
; CHECK-NEXT: %L_lhs_i_unwrap = load float, float* %lhs_i_unwrap, align 8, !tbaa !6, !invariant.group ![[lhsiv]]
173+
; CHECK-NEXT: %L_lhs_i_unwrap = load float, float* %lhs_i_unwrap, align 8, !tbaa !6
174174
; CHECK-NEXT: %m0diffeL_rhs_ij = fmul fast float %[[a10]], %L_lhs_i_unwrap
175175
; CHECK-NEXT: %rhs_ij_unwrap = getelementptr inbounds float, float* %rhs_data, i64 %[[unwrap7:.+]]
176-
; CHECK-NEXT: %L_rhs_ij_unwrap = load float, float* %rhs_ij_unwrap, align 8, !tbaa !6, !invariant.group ![[rhsiv]]
176+
; CHECK-NEXT: %L_rhs_ij_unwrap = load float, float* %rhs_ij_unwrap, align 8, !tbaa !6
177177
; CHECK-NEXT: %m1diffeL_lhs_i = fmul fast float %[[a10]], %L_rhs_ij_unwrap
178178
; CHECK-NEXT: %"rhs_ij'ipg_unwrap" = getelementptr inbounds float, float* %[[drhs_data]], i64 %[[unwrap7]]
179179
; CHECK-NEXT: %[[a11:.+]] = load float, float* %"rhs_ij'ipg_unwrap", align 8
@@ -203,11 +203,11 @@ attributes #3 = { argmemonly nounwind }
203203
; CHECK-NEXT: %[[unwrap11:.+]] = mul nsw i64 %iv.next4_unwrap, %rows
204204
; CHECK-NEXT: %[[unwrap12:.+]] = add nsw i64 %[[unwrap11]], %"iv'ac.0"
205205
; CHECK-NEXT: %lhs_ki_unwrap = getelementptr inbounds float, float* %lhs_data, i64 %[[unwrap12]]
206-
; CHECK-NEXT: %L_lhs_ki_unwrap = load float, float* %lhs_ki_unwrap, align 8, !tbaa !6, !invariant.group !
206+
; CHECK-NEXT: %L_lhs_ki_unwrap = load float, float* %lhs_ki_unwrap, align 8, !tbaa !6
207207
; CHECK-NEXT: %m0diffeL_rhs_kk = fmul fast float %[[a18]], %L_lhs_ki_unwrap
208208
; CHECK-NEXT: %[[unwrap14:.+]] = add nsw i64 %iv.next4_unwrap, %[[unwrap7]]
209209
; CHECK-NEXT: %rhs_kk_unwrap = getelementptr inbounds float, float* %rhs_data, i64 %[[unwrap14]]
210-
; CHECK-NEXT: %L_rhs_kk_unwrap = load float, float* %rhs_kk_unwrap, align 8, !tbaa !6, !invariant.group !
210+
; CHECK-NEXT: %L_rhs_kk_unwrap = load float, float* %rhs_kk_unwrap, align 8, !tbaa !6
211211
; CHECK-NEXT: %m1diffeL_lhs_ki = fmul fast float %[[a18]], %L_rhs_kk_unwrap
212212
; CHECK-NEXT: %"rhs_kk'ipg_unwrap" = getelementptr inbounds float, float* %[[drhs_data]], i64 %[[unwrap14]]
213213
; CHECK-NEXT: %[[a19:.+]] = load float, float* %"rhs_kk'ipg_unwrap", align 8

0 commit comments

Comments
 (0)