blob: 034bf2f27d25b537201401749c49ddb57d0eebb5 [file] [log] [blame]
Alexey Volkov1328b282014-04-01 08:13:07 +00001; RUN: llc < %s -march=x86 -mcpu=atom | FileCheck %s
2; CHECK: movl
3; CHECK: movb
4; CHECK: movb
5; CHECK: cmpb
6; CHECK: notb
7; CHECK: notb
8
9; Test for checking of cancel conversion to cmp32 in Atom case
10; in function 'X86TargetLowering::EmitCmp'
11
12define i8 @run_test(i8* %rd_p) {
13entry:
14 %incdec.ptr = getelementptr inbounds i8* %rd_p, i64 1
15 %ld1 = load i8* %rd_p, align 1
16 %incdec.ptr1 = getelementptr inbounds i8* %rd_p, i64 2
17 %ld2 = load i8* %incdec.ptr, align 1
18 %x4 = xor i8 %ld1, -1
19 %x5 = xor i8 %ld2, -1
20 %cmp34 = icmp ult i8 %ld2, %ld1
21 br i1 %cmp34, label %if.then3, label %if.else
22
23if.then3:
24 %sub7 = sub i8 %x4, %x5
25 br label %if.end4
26
27if.else:
28 %sub8 = sub i8 %x5, %x4
29 br label %if.end4
30
31if.end4:
32 %res = phi i8 [ %sub7, %if.then3 ], [ %sub8, %if.else ]
33 ret i8 %res
34
35}
36