brintos

brintos / llvm-project-archived public Read only

0
0
Text · 916 B · cc7e854 Raw
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