59 lines · plain
1; RUN: llc -mtriple=armv7a-none-eabi %s -o - -verify-machineinstrs | FileCheck %s2; RUN: llc -mtriple=thumbv7a-none-eabi %s -o - -verify-machineinstrs | FileCheck %s3; RUN: llc -mtriple=thumbv7m-none-eabi %s -o - -verify-machineinstrs | FileCheck %s4 5; Check we do not hit verifier errors from ifcvting volatile ldrd's6; CHECK: ldrdne7; CHECK: ldrdne8; CHECK: ldrdne9; CHECK: ldrdne10 11define void @c(ptr %b) noreturn nounwind {12entry:13 br label %for.cond14 15for.cond: ; preds = %land.end.3, %entry16 %a.0 = phi i32 [ 0, %entry ], [ %conv2.3, %land.end.3 ]17 %tobool.not = icmp eq i32 %a.0, 018 br i1 %tobool.not, label %land.end, label %land.rhs19 20land.rhs: ; preds = %for.cond21 %0 = load volatile i64, ptr %b, align 822 br label %land.end23 24land.end: ; preds = %land.rhs, %for.cond25 %sub.i = add nuw nsw i32 %a.0, 6553326 %conv2 = and i32 %sub.i, 6553527 %tobool.not.1 = icmp eq i32 %conv2, 028 br i1 %tobool.not.1, label %land.end.1, label %land.rhs.129 30land.rhs.1: ; preds = %land.end31 %1 = load volatile i64, ptr %b, align 832 br label %land.end.133 34land.end.1: ; preds = %land.rhs.1, %land.end35 %sub.i.1 = add nuw nsw i32 %a.0, 6553036 %conv2.1 = and i32 %sub.i.1, 6553537 %tobool.not.2 = icmp eq i32 %conv2.1, 038 br i1 %tobool.not.2, label %land.end.2, label %land.rhs.239 40land.rhs.2: ; preds = %land.end.141 %2 = load volatile i64, ptr %b, align 842 br label %land.end.243 44land.end.2: ; preds = %land.rhs.2, %land.end.145 %sub.i.2 = add nuw nsw i32 %a.0, 6552746 %conv2.2 = and i32 %sub.i.2, 6553547 %tobool.not.3 = icmp eq i32 %conv2.2, 048 br i1 %tobool.not.3, label %land.end.3, label %land.rhs.349 50land.rhs.3: ; preds = %land.end.251 %3 = load volatile i64, ptr %b, align 852 br label %land.end.353 54land.end.3: ; preds = %land.rhs.3, %land.end.255 %sub.i.3 = add nuw nsw i32 %a.0, 6552456 %conv2.3 = and i32 %sub.i.3, 6553557 br label %for.cond58}59