43 lines · plain
1; RUN: opt -S -passes=mergefunc < %s | FileCheck %s2 3; RUN: opt -S -passes=mergefunc < %s | FileCheck -check-prefix=NOPLUS %s4 5; This makes sure that zeros in constants don't cause problems with string based6; memory comparisons7define internal i32 @sum(i32 %x, i32 %y) {8; CHECK-LABEL: @sum9 %sum = add i32 %x, %y10 %1 = extractvalue [3 x i32] [ i32 3, i32 0, i32 2 ], 211 %sum2 = add i32 %sum, %112 %sum3 = add i32 %sum2, %y13 ret i32 %sum314}15 16define internal i32 @add(i32 %x, i32 %y) {17; CHECK-LABEL: @add18 %sum = add i32 %x, %y19 %1 = extractvalue [3 x i32] [ i32 3, i32 0, i32 1 ], 220 %sum2 = add i32 %sum, %121 %sum3 = add i32 %sum2, %y22 ret i32 %sum323}24 25define internal i32 @plus(i32 %x, i32 %y) {26; NOPLUS-NOT: @plus27 %sum = add i32 %x, %y28 %1 = extractvalue [3 x i32] [ i32 3, i32 0, i32 5 ], 229 %sum2 = add i32 %sum, %130 %sum3 = add i32 %sum2, %y31 ret i32 %sum332}33 34define internal i32 @next(i32 %x, i32 %y) {35; CHECK-LABEL: @next36 %sum = add i32 %x, %y37 %1 = extractvalue [3 x i32] [ i32 3, i32 0, i32 5 ], 238 %sum2 = add i32 %sum, %139 %sum3 = add i32 %sum2, %y40 ret i32 %sum341}42 43