Index: llvm/lib/CodeGen/CodeGenPrepare.cpp =================================================================== --- llvm/lib/CodeGen/CodeGenPrepare.cpp +++ llvm/lib/CodeGen/CodeGenPrepare.cpp @@ -5838,13 +5838,19 @@ if (isa(D)) { ValMap[D] = D->getOperand(0); DeletedInstrs.insert(D); - } else - ValMap[D] = + } else { + Instruction *N = new BitCastInst(D, ConvertTy, D->getName() + ".bc", D->getNextNode()); + N->setDebugLoc(D->getDebugLoc()); + ValMap[D] = N; + } + } + for (PHINode *Phi : PhiNodes) { + PHINode *N = PHINode::Create(ConvertTy, Phi->getNumIncomingValues(), + Phi->getName() + ".tc", Phi); + N->setDebugLoc(Phi->getDebugLoc()); + ValMap[Phi] = N; } - for (PHINode *Phi : PhiNodes) - ValMap[Phi] = PHINode::Create(ConvertTy, Phi->getNumIncomingValues(), - Phi->getName() + ".tc", Phi); // Pipe together all the PhiNodes. for (PHINode *Phi : PhiNodes) { PHINode *NewPhi = cast(ValMap[Phi]); @@ -5858,9 +5864,12 @@ if (isa(U)) { DeletedInstrs.insert(U); U->replaceAllUsesWith(ValMap[U->getOperand(0)]); - } else - U->setOperand(0, - new BitCastInst(ValMap[U->getOperand(0)], PhiTy, "bc", U)); + } else { + Instruction *N = + new BitCastInst(ValMap[U->getOperand(0)], PhiTy, "bc", U); + N->setDebugLoc(U->getDebugLoc()); + U->setOperand(0, N); + } } // Save the removed phis to be deleted later. Index: llvm/test/CodeGen/AArch64/convertphitype.ll =================================================================== --- llvm/test/CodeGen/AArch64/convertphitype.ll +++ llvm/test/CodeGen/AArch64/convertphitype.ll @@ -29,16 +29,16 @@ ; DEBUG-NEXT: br i1 [[CMP15]], label [[THEN:%.*]], label [[ELSE:%.*]], !dbg !17 ; DEBUG: then: ; DEBUG-NEXT: [[LS:%.*]] = load i32, i32* [[S:%.*]], align 4, !dbg !18 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float, !dbg !18 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LS]], metadata !11, metadata !DIExpression()), !dbg !18 ; DEBUG-NEXT: br label [[END:%.*]], !dbg !19 ; DEBUG: else: ; DEBUG-NEXT: [[LD:%.*]] = load i32, i32* [[D:%.*]], align 4, !dbg !20 -; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast i32 [[LD]] to float +; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast i32 [[LD]] to float, !dbg !20 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LD]], metadata !13, metadata !DIExpression()), !dbg !20 ; DEBUG-NEXT: br label [[END]], !dbg !21 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ELSE]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ELSE]] ], !dbg !22 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !14, metadata !DIExpression()), !dbg !22 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float [[PHI_TC]], metadata !15, metadata !DIExpression()), !dbg !23 ; DEBUG-NEXT: ret float [[PHI_TC]], !dbg !24 @@ -81,11 +81,11 @@ ; DEBUG-NEXT: br i1 [[CMP15]], label [[THEN:%.*]], label [[END:%.*]], !dbg !32 ; DEBUG: then: ; DEBUG-NEXT: [[LS:%.*]] = load i32, i32* [[S:%.*]], align 4, !dbg !33 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float, !dbg !33 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LS]], metadata !28, metadata !DIExpression()), !dbg !33 ; DEBUG-NEXT: br label [[END]], !dbg !34 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[LS_BC]], [[THEN]] ], [ undef, [[ENTRY:%.*]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[LS_BC]], [[THEN]] ], [ undef, [[ENTRY:%.*]] ], !dbg !35 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !29, metadata !DIExpression()), !dbg !35 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float [[PHI_TC]], metadata !30, metadata !DIExpression()), !dbg !36 ; DEBUG-NEXT: ret float [[PHI_TC]], !dbg !37 @@ -125,11 +125,11 @@ ; DEBUG-NEXT: br i1 [[CMP15]], label [[THEN:%.*]], label [[END:%.*]], !dbg !47 ; DEBUG: then: ; DEBUG-NEXT: [[LS:%.*]] = load i32, i32* [[S:%.*]], align 4, !dbg !48 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float, !dbg !48 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LS]], metadata !42, metadata !DIExpression()), !dbg !48 ; DEBUG-NEXT: br label [[END]], !dbg !49 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[LS_BC]], [[THEN]] ], [ [[F:%.*]], [[ENTRY:%.*]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[LS_BC]], [[THEN]] ], [ [[F:%.*]], [[ENTRY:%.*]] ], !dbg !50 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !43, metadata !DIExpression()), !dbg !50 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float [[PHI_TC]], metadata !44, metadata !DIExpression()), !dbg !51 ; DEBUG-NEXT: ret float [[PHI_TC]], !dbg !52 @@ -172,13 +172,13 @@ ; DEBUG-NEXT: br i1 [[CMP15]], label [[THEN:%.*]], label [[END:%.*]], !dbg !61 ; DEBUG: then: ; DEBUG-NEXT: [[LS:%.*]] = load i32, i32* [[S:%.*]], align 4, !dbg !62 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float, !dbg !62 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LS]], metadata !57, metadata !DIExpression()), !dbg !62 ; DEBUG-NEXT: br label [[END]], !dbg !63 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[LS_BC]], [[THEN]] ], [ [[F:%.*]], [[ENTRY:%.*]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[LS_BC]], [[THEN]] ], [ [[F:%.*]], [[ENTRY:%.*]] ], !dbg !64 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !58, metadata !DIExpression()), !dbg !64 -; DEBUG-NEXT: [[BC:%.*]] = bitcast float [[PHI_TC]] to i32 +; DEBUG-NEXT: [[BC:%.*]] = bitcast float [[PHI_TC]] to i32, !dbg !65 ; DEBUG-NEXT: store i32 [[BC]], i32* [[D:%.*]], align 4, !dbg !65 ; DEBUG-NEXT: ret void, !dbg !66 ; @@ -221,16 +221,16 @@ ; DEBUG-NEXT: br i1 [[CMP15]], label [[THEN:%.*]], label [[ELSE:%.*]], !dbg !76 ; DEBUG: then: ; DEBUG-NEXT: [[LS:%.*]] = load double, double* [[S:%.*]], align 4, !dbg !77 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast double [[LS]] to i64 +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast double [[LS]] to i64, !dbg !77 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata double [[LS]], metadata !70, metadata !DIExpression()), !dbg !77 ; DEBUG-NEXT: br label [[END:%.*]], !dbg !78 ; DEBUG: else: ; DEBUG-NEXT: [[LD:%.*]] = load double, double* [[D:%.*]], align 4, !dbg !79 -; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast double [[LD]] to i64 +; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast double [[LD]] to i64, !dbg !79 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata double [[LD]], metadata !72, metadata !DIExpression()), !dbg !79 ; DEBUG-NEXT: br label [[END]], !dbg !80 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi i64 [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ELSE]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi i64 [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ELSE]] ], !dbg !81 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata double undef, metadata !73, metadata !DIExpression()), !dbg !81 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i64 [[PHI_TC]], metadata !74, metadata !DIExpression()), !dbg !82 ; DEBUG-NEXT: ret i64 [[PHI_TC]], !dbg !83 @@ -277,16 +277,16 @@ ; DEBUG-NEXT: br i1 [[CMP15]], label [[THEN:%.*]], label [[ELSE:%.*]], !dbg !92 ; DEBUG: then: ; DEBUG-NEXT: [[LS:%.*]] = load float, float* [[S:%.*]], align 4, !dbg !93 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast float [[LS]] to i32 +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast float [[LS]] to i32, !dbg !93 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float [[LS]], metadata !87, metadata !DIExpression()), !dbg !93 ; DEBUG-NEXT: br label [[END:%.*]], !dbg !94 ; DEBUG: else: ; DEBUG-NEXT: [[LD:%.*]] = load float, float* [[D:%.*]], align 4, !dbg !95 -; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast float [[LD]] to i32 +; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast float [[LD]] to i32, !dbg !95 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float [[LD]], metadata !88, metadata !DIExpression()), !dbg !95 ; DEBUG-NEXT: br label [[END]], !dbg !96 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi i32 [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ELSE]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi i32 [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ELSE]] ], !dbg !97 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float undef, metadata !89, metadata !DIExpression()), !dbg !97 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[PHI_TC]], metadata !90, metadata !DIExpression()), !dbg !98 ; DEBUG-NEXT: ret i32 [[PHI_TC]], !dbg !99 @@ -333,16 +333,16 @@ ; DEBUG-NEXT: br i1 [[CMP15]], label [[THEN:%.*]], label [[ELSE:%.*]], !dbg !109 ; DEBUG: then: ; DEBUG-NEXT: [[LS:%.*]] = load half, half* [[S:%.*]], align 4, !dbg !110 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast half [[LS]] to i16 +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast half [[LS]] to i16, !dbg !110 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata half [[LS]], metadata !103, metadata !DIExpression()), !dbg !110 ; DEBUG-NEXT: br label [[END:%.*]], !dbg !111 ; DEBUG: else: ; DEBUG-NEXT: [[LD:%.*]] = load half, half* [[D:%.*]], align 4, !dbg !112 -; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast half [[LD]] to i16 +; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast half [[LD]] to i16, !dbg !112 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata half [[LD]], metadata !105, metadata !DIExpression()), !dbg !112 ; DEBUG-NEXT: br label [[END]], !dbg !113 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi i16 [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ELSE]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi i16 [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ELSE]] ], !dbg !114 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata half undef, metadata !106, metadata !DIExpression()), !dbg !114 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i16 [[PHI_TC]], metadata !107, metadata !DIExpression()), !dbg !115 ; DEBUG-NEXT: ret i16 [[PHI_TC]], !dbg !116 @@ -389,16 +389,16 @@ ; DEBUG-NEXT: br i1 [[CMP15]], label [[THEN:%.*]], label [[ELSE:%.*]], !dbg !126 ; DEBUG: then: ; DEBUG-NEXT: [[LS:%.*]] = load fp128, fp128* [[S:%.*]], align 4, !dbg !127 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast fp128 [[LS]] to i128 +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast fp128 [[LS]] to i128, !dbg !127 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata fp128 [[LS]], metadata !120, metadata !DIExpression()), !dbg !127 ; DEBUG-NEXT: br label [[END:%.*]], !dbg !128 ; DEBUG: else: ; DEBUG-NEXT: [[LD:%.*]] = load fp128, fp128* [[D:%.*]], align 4, !dbg !129 -; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast fp128 [[LD]] to i128 +; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast fp128 [[LD]] to i128, !dbg !129 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata fp128 [[LD]], metadata !122, metadata !DIExpression()), !dbg !129 ; DEBUG-NEXT: br label [[END]], !dbg !130 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi i128 [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ELSE]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi i128 [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ELSE]] ], !dbg !131 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata fp128 undef, metadata !123, metadata !DIExpression()), !dbg !131 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i128 [[PHI_TC]], metadata !124, metadata !DIExpression()), !dbg !132 ; DEBUG-NEXT: ret i128 [[PHI_TC]], !dbg !133 @@ -499,16 +499,16 @@ ; DEBUG-NEXT: [[CMP15:%.*]] = icmp sgt i64 [[N:%.*]], 0, !dbg !161 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i1 [[CMP15]], metadata !152, metadata !DIExpression()), !dbg !161 ; DEBUG-NEXT: [[LS:%.*]] = load i32, i32* [[S:%.*]], align 4, !dbg !162 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float, !dbg !162 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LS]], metadata !153, metadata !DIExpression()), !dbg !162 ; DEBUG-NEXT: br i1 [[CMP15]], label [[LOOP:%.*]], label [[END:%.*]], !dbg !163 ; DEBUG: loop: ; DEBUG-NEXT: [[IV:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ], !dbg !164 -; DEBUG-NEXT: [[LPHI_TC:%.*]] = phi float [ [[LS_BC]], [[ENTRY]] ], [ [[LD_BC:%.*]], [[LOOP]] ] +; DEBUG-NEXT: [[LPHI_TC:%.*]] = phi float [ [[LS_BC]], [[ENTRY]] ], [ [[LD_BC:%.*]], [[LOOP]] ], !dbg !165 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i64 [[IV]], metadata !154, metadata !DIExpression()), !dbg !164 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !155, metadata !DIExpression()), !dbg !165 ; DEBUG-NEXT: [[LD:%.*]] = load i32, i32* [[D:%.*]], align 4, !dbg !166 -; DEBUG-NEXT: [[LD_BC]] = bitcast i32 [[LD]] to float +; DEBUG-NEXT: [[LD_BC]] = bitcast i32 [[LD]] to float, !dbg !166 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LD]], metadata !156, metadata !DIExpression()), !dbg !166 ; DEBUG-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1, !dbg !167 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i64 [[IV_NEXT]], metadata !157, metadata !DIExpression()), !dbg !167 @@ -516,7 +516,7 @@ ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i1 [[EXITCOND]], metadata !158, metadata !DIExpression()), !dbg !168 ; DEBUG-NEXT: br i1 [[EXITCOND]], label [[END]], label [[LOOP]], !dbg !169 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ undef, [[ENTRY]] ], [ [[LPHI_TC]], [[LOOP]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ undef, [[ENTRY]] ], [ [[LPHI_TC]], [[LOOP]] ], !dbg !170 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !159, metadata !DIExpression()), !dbg !170 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float [[PHI_TC]], metadata !160, metadata !DIExpression()), !dbg !171 ; DEBUG-NEXT: ret float [[PHI_TC]], !dbg !172 @@ -624,18 +624,18 @@ ; DEBUG-NEXT: [[CMP15:%.*]] = icmp sgt i64 [[N:%.*]], 0, !dbg !208 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i1 [[CMP15]], metadata !198, metadata !DIExpression()), !dbg !208 ; DEBUG-NEXT: [[LS:%.*]] = load i32, i32* [[S:%.*]], align 4, !dbg !209 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float, !dbg !209 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LS]], metadata !199, metadata !DIExpression()), !dbg !209 ; DEBUG-NEXT: br i1 [[CMP15]], label [[LOOP:%.*]], label [[END:%.*]], !dbg !210 ; DEBUG: loop: ; DEBUG-NEXT: [[IV:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ], !dbg !211 -; DEBUG-NEXT: [[LPHI_TC:%.*]] = phi float [ [[LS_BC]], [[ENTRY]] ], [ [[LD_BC:%.*]], [[LOOP]] ] -; DEBUG-NEXT: [[LPHI2_TC:%.*]] = phi float [ undef, [[ENTRY]] ], [ [[LPHI_TC]], [[LOOP]] ] +; DEBUG-NEXT: [[LPHI_TC:%.*]] = phi float [ [[LS_BC]], [[ENTRY]] ], [ [[LD_BC:%.*]], [[LOOP]] ], !dbg !212 +; DEBUG-NEXT: [[LPHI2_TC:%.*]] = phi float [ undef, [[ENTRY]] ], [ [[LPHI_TC]], [[LOOP]] ], !dbg !213 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i64 [[IV]], metadata !200, metadata !DIExpression()), !dbg !211 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !201, metadata !DIExpression()), !dbg !212 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !202, metadata !DIExpression()), !dbg !213 ; DEBUG-NEXT: [[LD:%.*]] = load i32, i32* [[D:%.*]], align 4, !dbg !214 -; DEBUG-NEXT: [[LD_BC]] = bitcast i32 [[LD]] to float +; DEBUG-NEXT: [[LD_BC]] = bitcast i32 [[LD]] to float, !dbg !214 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LD]], metadata !203, metadata !DIExpression()), !dbg !214 ; DEBUG-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1, !dbg !215 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i64 [[IV_NEXT]], metadata !204, metadata !DIExpression()), !dbg !215 @@ -643,7 +643,7 @@ ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i1 [[EXITCOND]], metadata !205, metadata !DIExpression()), !dbg !216 ; DEBUG-NEXT: br i1 [[EXITCOND]], label [[END]], label [[LOOP]], !dbg !217 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ undef, [[ENTRY]] ], [ [[LPHI2_TC]], [[LOOP]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ undef, [[ENTRY]] ], [ [[LPHI2_TC]], [[LOOP]] ], !dbg !218 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !206, metadata !DIExpression()), !dbg !218 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float [[PHI_TC]], metadata !207, metadata !DIExpression()), !dbg !219 ; DEBUG-NEXT: ret float [[PHI_TC]], !dbg !220 @@ -706,34 +706,34 @@ ; DEBUG-NEXT: [[CMP:%.*]] = icmp eq i64 [[N:%.*]], 1, !dbg !236 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i1 [[CMP]], metadata !223, metadata !DIExpression()), !dbg !236 ; DEBUG-NEXT: [[LS:%.*]] = load i32, i32* [[S:%.*]], align 4, !dbg !237 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float, !dbg !237 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LS]], metadata !224, metadata !DIExpression()), !dbg !237 ; DEBUG-NEXT: br i1 [[CMP]], label [[THEN:%.*]], label [[IFEND:%.*]], !dbg !238 ; DEBUG: then: ; DEBUG-NEXT: [[LD:%.*]] = load i32, i32* [[D:%.*]], align 4, !dbg !239 -; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast i32 [[LD]] to float +; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast i32 [[LD]] to float, !dbg !239 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LD]], metadata !225, metadata !DIExpression()), !dbg !239 ; DEBUG-NEXT: br label [[IFEND]], !dbg !240 ; DEBUG: ifend: -; DEBUG-NEXT: [[PHI1_TC:%.*]] = phi float [ [[LD_BC]], [[THEN]] ], [ [[LS_BC]], [[ENTRY:%.*]] ] +; DEBUG-NEXT: [[PHI1_TC:%.*]] = phi float [ [[LD_BC]], [[THEN]] ], [ [[LS_BC]], [[ENTRY:%.*]] ], !dbg !241 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !226, metadata !DIExpression()), !dbg !241 ; DEBUG-NEXT: [[CMP15:%.*]] = icmp sgt i64 [[N]], 0, !dbg !242 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i1 [[CMP15]], metadata !227, metadata !DIExpression()), !dbg !242 ; DEBUG-NEXT: br i1 [[CMP15]], label [[LOOP:%.*]], label [[END:%.*]], !dbg !243 ; DEBUG: loop: ; DEBUG-NEXT: [[IV:%.*]] = phi i64 [ 0, [[IFEND]] ], [ [[IV_NEXT:%.*]], [[LOOPEND:%.*]] ], !dbg !244 -; DEBUG-NEXT: [[PHI2_TC:%.*]] = phi float [ [[PHI1_TC]], [[IFEND]] ], [ [[PHI3_TC:%.*]], [[LOOPEND]] ] +; DEBUG-NEXT: [[PHI2_TC:%.*]] = phi float [ [[PHI1_TC]], [[IFEND]] ], [ [[PHI3_TC:%.*]], [[LOOPEND]] ], !dbg !245 ; DEBUG-NEXT: [[TMP0:%.*]] = icmp eq i64 [[N]], 1, !dbg !236 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i64 [[IV]], metadata !228, metadata !DIExpression()), !dbg !244 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !229, metadata !DIExpression()), !dbg !245 ; DEBUG-NEXT: br i1 [[TMP0]], label [[LOOPTHEN:%.*]], label [[LOOPEND]], !dbg !246 ; DEBUG: loopthen: ; DEBUG-NEXT: [[LL:%.*]] = load i32, i32* [[D]], align 4, !dbg !247 -; DEBUG-NEXT: [[LL_BC:%.*]] = bitcast i32 [[LL]] to float +; DEBUG-NEXT: [[LL_BC:%.*]] = bitcast i32 [[LL]] to float, !dbg !247 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LL]], metadata !230, metadata !DIExpression()), !dbg !247 ; DEBUG-NEXT: br label [[LOOPEND]], !dbg !248 ; DEBUG: loopend: -; DEBUG-NEXT: [[PHI3_TC]] = phi float [ [[LL_BC]], [[LOOPTHEN]] ], [ [[PHI2_TC]], [[LOOP]] ] +; DEBUG-NEXT: [[PHI3_TC]] = phi float [ [[LL_BC]], [[LOOPTHEN]] ], [ [[PHI2_TC]], [[LOOP]] ], !dbg !249 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !231, metadata !DIExpression()), !dbg !249 ; DEBUG-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1, !dbg !250 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i64 [[IV_NEXT]], metadata !232, metadata !DIExpression()), !dbg !250 @@ -741,7 +741,7 @@ ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i1 [[EXITCOND]], metadata !233, metadata !DIExpression()), !dbg !251 ; DEBUG-NEXT: br i1 [[EXITCOND]], label [[END]], label [[LOOP]], !dbg !252 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[PHI1_TC]], [[IFEND]] ], [ [[PHI3_TC]], [[LOOPEND]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[PHI1_TC]], [[IFEND]] ], [ [[PHI3_TC]], [[LOOPEND]] ], !dbg !253 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !234, metadata !DIExpression()), !dbg !253 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float [[PHI_TC]], metadata !235, metadata !DIExpression()), !dbg !254 ; DEBUG-NEXT: ret float [[PHI_TC]], !dbg !255 @@ -924,16 +924,16 @@ ; DEBUG-NEXT: br i1 [[CMP15]], label [[THEN:%.*]], label [[ELSE:%.*]], !dbg !300 ; DEBUG: then: ; DEBUG-NEXT: [[LS:%.*]] = load i32, i32* [[S:%.*]], align 4, !dbg !301 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float, !dbg !301 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LS]], metadata !295, metadata !DIExpression()), !dbg !301 ; DEBUG-NEXT: br label [[END:%.*]], !dbg !302 ; DEBUG: else: ; DEBUG-NEXT: [[LD:%.*]] = load i32, i32* [[D:%.*]], align 4, !dbg !303 -; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast i32 [[LD]] to float +; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast i32 [[LD]] to float, !dbg !303 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LD]], metadata !296, metadata !DIExpression()), !dbg !303 ; DEBUG-NEXT: br label [[END]], !dbg !304 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ELSE]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ELSE]] ], !dbg !305 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !297, metadata !DIExpression()), !dbg !305 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float [[PHI_TC]], metadata !298, metadata !DIExpression()), !dbg !306 ; DEBUG-NEXT: store float [[PHI_TC]], float* [[E:%.*]], align 4, !dbg !307 @@ -988,20 +988,20 @@ ; DEBUG-NEXT: [[CMP15:%.*]] = icmp sgt i32 [[N:%.*]], 0, !dbg !318 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i1 [[CMP15]], metadata !311, metadata !DIExpression()), !dbg !318 ; DEBUG-NEXT: [[LD:%.*]] = load i32, i32* [[D:%.*]], align 4, !dbg !319 -; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast i32 [[LD]] to float +; DEBUG-NEXT: [[LD_BC:%.*]] = bitcast i32 [[LD]] to float, !dbg !319 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LD]], metadata !312, metadata !DIExpression()), !dbg !319 ; DEBUG-NEXT: br i1 [[CMP15]], label [[THEN:%.*]], label [[END:%.*]], !dbg !320 ; DEBUG: then: ; DEBUG-NEXT: [[LS:%.*]] = load i32, i32* [[S:%.*]], align 4, !dbg !321 -; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float +; DEBUG-NEXT: [[LS_BC:%.*]] = bitcast i32 [[LS]] to float, !dbg !321 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 [[LS]], metadata !313, metadata !DIExpression()), !dbg !321 ; DEBUG-NEXT: br label [[END]], !dbg !322 ; DEBUG: end: -; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ENTRY:%.*]] ] +; DEBUG-NEXT: [[PHI_TC:%.*]] = phi float [ [[LS_BC]], [[THEN]] ], [ [[LD_BC]], [[ENTRY:%.*]] ], !dbg !323 ; DEBUG-NEXT: [[TMP0:%.*]] = icmp sgt i32 [[N]], 0, !dbg !318 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata i32 undef, metadata !314, metadata !DIExpression()), !dbg !323 ; DEBUG-NEXT: call void @llvm.dbg.value(metadata float [[PHI_TC]], metadata !315, metadata !DIExpression()), !dbg !324 -; DEBUG-NEXT: [[BC:%.*]] = bitcast float [[PHI_TC]] to i32 +; DEBUG-NEXT: [[BC:%.*]] = bitcast float [[PHI_TC]] to i32, !dbg !325 ; DEBUG-NEXT: store i32 [[BC]], i32* [[S]], align 4, !dbg !325 ; DEBUG-NEXT: br i1 [[TMP0]], label [[THEN2:%.*]], label [[END2:%.*]], !dbg !326 ; DEBUG: then2: