fix a missing shuffle pattern, PR9009. Patch by Artiom Myaskouvskey!
[oota-llvm.git] / test / CodeGen / X86 / umulo-64.ll
1 ; RUN: llc < %s -mtriple=i386-apple-darwin
2
3 %0 = type { i64, i1 }
4
5 define i32 @f0(i64 %a, i64 %b) nounwind ssp {
6   %1 = alloca i64, align 4
7   %2 = alloca i64, align 4
8   store i64 %a, i64* %1, align 8
9   store i64 %b, i64* %2, align 8
10   %3 = load i64* %1, align 8
11   %4 = load i64* %2, align 8
12   %5 = call %0 @llvm.smul.with.overflow.i64(i64 %3, i64 %4)
13   %6 = extractvalue %0 %5, 0
14   %7 = extractvalue %0 %5, 1
15   br i1 %7, label %8, label %9
16
17 ; <label>:8                                       ; preds = %0
18   call void @llvm.trap()
19   unreachable
20
21 ; <label>:9                                       ; preds = %0
22   %10 = trunc i64 %6 to i32
23   ret i32 %10
24 }
25
26 declare %0 @llvm.smul.with.overflow.i64(i64, i64) nounwind readnone
27
28 declare void @llvm.trap() nounwind