[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / X86 / subreg-to-reg-6.ll
blob6e4e24c08b6bf0d01f2fedd0a5761cdfcd0f5684
1 ; RUN: llc < %s -mtriple=x86_64--
3 define i64 @foo() nounwind {
4 entry:
5         %t0 = load i32, i32* null, align 8
6         switch i32 %t0, label %bb65 [
7                 i32 16, label %bb
8                 i32 12, label %bb56
9         ]
11 bb:
12         br label %bb65
14 bb56:
15         unreachable
17 bb65:
18         %a = phi i64 [ 0, %bb ], [ 0, %entry ]
19         tail call void asm "", "{cx}"(i64 %a) nounwind
20         %t15 = and i64 %a, 4294967295
21         ret i64 %t15
24 define i64 @bar(i64 %t0) nounwind {
25         call void asm "", "{cx}"(i64 0) nounwind
26         %t1 = sub i64 0, %t0
27         %t2 = and i64 %t1, 4294967295
28         ret i64 %t2