90 lines · plain
1; RUN: llc < %s -asm-verbose=false -O3 -mtriple=armv5e-none-linux-gnueabi | FileCheck %s2; PR8986: PostRA antidependence breaker must respect "earlyclobber".3; armv5e generates mulv5 that cannot used the same reg for src/dest.4 5; ModuleID = '<stdin>'6target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:64-n32"7target triple = "armv5e-none-linux-gnueabi"8 9define hidden fastcc void @storeAtts() nounwind {10entry:11 %.SV116 = alloca ptr12 br i1 undef, label %meshBB520, label %meshBB46413 14bb15: ; preds = %meshBB42415 br i1 undef, label %bb216, label %meshBB39616 17bb22: ; preds = %meshBB39618 br label %cBB56419 20cBB564: ; preds = %cBB564, %bb2221 br label %cBB56422 23poolStoreString.exit.thread: ; preds = %meshBB42424 ret void25 26bb78: ; preds = %meshBB41227 unreachable28 29bb129: ; preds = %meshBB54030 br i1 undef, label %bb131.loopexit, label %meshBB54031 32bb131.loopexit: ; preds = %bb12933 br label %bb13134 35bb131: ; preds = %bb135, %bb131.loopexit36 br i1 undef, label %bb134, label %meshBB39637 38bb134: ; preds = %bb13139 unreachable40 41bb135: ; preds = %meshBB39642 %uriHash.1.phi.load = load i32, ptr undef43 %.load120 = load ptr, ptr %.SV11644 %.phi24 = load i8, ptr null45 %.phi26 = load ptr, ptr null46 store i8 %.phi24, ptr %.phi26, align 147 %0 = getelementptr inbounds i8, ptr %.phi26, i32 148 store ptr %0, ptr %.load120, align 449 ; CHECK: mul [[REGISTER:lr|r[0-9]+]],50 ; CHECK-NOT: [[REGISTER]],51 ; CHECK: {{(lr|r[0-9]+)$}}52 %1 = mul i32 %uriHash.1.phi.load, 100000353 %2 = xor i32 0, %154 store i32 %2, ptr null55 %3 = load i8, ptr null, align 156 %4 = icmp eq i8 %3, 057 store ptr %0, ptr undef58 br i1 %4, label %meshBB472, label %bb13159 60bb212: ; preds = %meshBB54061 unreachable62 63bb216: ; preds = %bb1564 ret void65 66meshBB396: ; preds = %bb131, %bb1567 br i1 undef, label %bb135, label %bb2268 69meshBB412: ; preds = %meshBB46470 br i1 undef, label %meshBB504, label %bb7871 72meshBB424: ; preds = %meshBB46473 br i1 undef, label %poolStoreString.exit.thread, label %bb1574 75meshBB464: ; preds = %entry76 br i1 undef, label %meshBB424, label %meshBB41277 78meshBB472: ; preds = %meshBB504, %bb13579 unreachable80 81meshBB504: ; preds = %meshBB41282 br label %meshBB47283 84meshBB520: ; preds = %entry85 br label %meshBB54086 87meshBB540: ; preds = %meshBB520, %bb12988 br i1 undef, label %bb212, label %bb12989}90