;; dbg.assign/DIExpression. Ensure that only the value-expression gets fragment
;; info; that the address-expression remains untouched.
-; CHECK: %i.sroa.0.12..sroa_idx2 = getelementptr inbounds i8, ptr %i.sroa.0, i64 12, !dbg !64
-; CHECK-NEXT: store float %2, ptr %i.sroa.0.12..sroa_idx2, align 4, !dbg !64, !DIAssignID !66
+; CHECK: [[ADDR:%.*]] = getelementptr inbounds i8, ptr %i.sroa.0, i64 12, !dbg !64
+; CHECK-NEXT: store float %2, ptr [[ADDR]], align 4, !dbg !64, !DIAssignID !66
;; There's a dbg intrinsics we're not interested in testing wedged in here.
; CHECK-NEXT: dbg.assign
; CHECK-NEXT: call void @llvm.dbg.assign(metadata float %2,{{.+}}, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32),{{.+}}, metadata ptr %i.sroa.0.12..sroa_idx2, metadata !DIExpression()), !dbg