37 lines · plain
1; PR30213. Check scev expand will generate correct code if the value2; in ValueOffsetPair is of pointer type.3; RUN: opt -mtriple=i386-apple-macosx10.12.0 < %s -loop-reduce -S | FileCheck %s4 5; CHECK: %ptr4.ptr1 = select i1 %cmp.i, ptr %ptr4, ptr %ptr16; CHECK-NEXT: %scevgep = getelementptr nuw i8, ptr %ptr4.ptr1, i32 17; CHECK-NEXT: br label %while.cond.i8 9target datalayout = "e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128"10target triple = "i386-apple-macosx10.12.0"11 12; Function Attrs: nounwind optsize ssp13define void @Foo() {14entry:15 switch i2 undef, label %sw.epilog102 [16 i2 -2, label %sw.bb2817 ]18 19sw.bb28: ; preds = %entry20 %0 = load ptr, ptr undef, align 221 %ptr1 = getelementptr inbounds i8, ptr undef, i32 -122 %ptr4 = getelementptr inbounds i8, ptr %0, i32 -123 %cmp.i = icmp ult ptr undef, %024 %ptr4.ptr1 = select i1 %cmp.i, ptr %ptr4, ptr %ptr125 br label %while.cond.i26 27while.cond.i: ; preds = %while.cond.i, %sw.bb2828 %currPtr.1.i = phi ptr [ %incdec.ptr.i, %while.cond.i ], [ %ptr4.ptr1, %sw.bb28 ]29 %incdec.ptr.i = getelementptr inbounds i8, ptr %currPtr.1.i, i32 130 %1 = load i8, ptr %incdec.ptr.i, align 131 br label %while.cond.i32 33sw.epilog102: ; preds = %entry34 unreachable35}36 37