43 lines · plain
1; RUN: llc -O2 -mtriple=i686-- < %s | FileCheck %s2 3define ptr @fooOptnone(ptr %p, ptr %q, ptr %z) #0 {4entry:5 %r = load i32, ptr %p6 %s = load i32, ptr %q7 %y = load ptr, ptr %z8 9 %t0 = add i32 %r, %s10 %t1 = add i32 %t0, 111 %t2 = getelementptr i32, ptr %y, i32 112 %t3 = getelementptr i32, ptr %t2, i32 %t113 14 ret ptr %t315 16; 'optnone' should use fast-isel which will not produce 'lea'.17; CHECK-LABEL: fooOptnone:18; CHECK-NOT: lea19; CHECK: ret20}21 22define ptr @fooNormal(ptr %p, ptr %q, ptr %z) #1 {23entry:24 %r = load i32, ptr %p25 %s = load i32, ptr %q26 %y = load ptr, ptr %z27 28 %t0 = add i32 %r, %s29 %t1 = add i32 %t0, 130 %t2 = getelementptr i32, ptr %y, i32 131 %t3 = getelementptr i32, ptr %t2, i32 %t132 33 ret ptr %t334 35; Normal ISel will produce 'lea'.36; CHECK-LABEL: fooNormal:37; CHECK: lea38; CHECK: ret39}40 41attributes #0 = { nounwind optnone noinline }42attributes #1 = { nounwind }43