Split the Add, Sub, and Mul instruction opcodes into separate
[oota-llvm.git] / test / CodeGen / X86 / select-no-cmov.ll
1 ; RUN: llvm-as < %s | llc | not grep cmov
2
3 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
4 target triple = "i386-apple-darwin7"
5
6 ; Should compile to setcc | -2.
7 ; rdar://6668608
8 define i32 @test(i32* nocapture %P) nounwind readonly {
9 entry:
10         %0 = load i32* %P, align 4              ; <i32> [#uses=1]
11         %1 = icmp sgt i32 %0, 41                ; <i1> [#uses=1]
12         %iftmp.0.0 = select i1 %1, i32 -1, i32 -2               ; <i32> [#uses=1]
13         ret i32 %iftmp.0.0
14 }
15
16 ;       setl    %al
17 ;       movzbl  %al, %eax
18 ;       leal    4(%eax,%eax,8), %eax
19 define i32 @test2(i32* nocapture %P) nounwind readonly {
20 entry:
21         %0 = load i32* %P, align 4              ; <i32> [#uses=1]
22         %1 = icmp sgt i32 %0, 41                ; <i1> [#uses=1]
23         %iftmp.0.0 = select i1 %1, i32 4, i32 13                ; <i32> [#uses=1]
24         ret i32 %iftmp.0.0
25 }
26