Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / X86 / xor-select-i1-combine.ll
blob6a957a1cdf77aedfe1390f35092c41a397d2a299
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ;RUN: llc < %s -O2 -mattr=+avx512f -mtriple=x86_64-unknown | FileCheck %s
4 @n = common dso_local global i32 0, align 4
5 @m = common dso_local global i32 0, align 4
7 define dso_local i32 @main(i8 %small) {
8 ; CHECK-LABEL: main:
9 ; CHECK:       # %bb.0: # %entry
10 ; CHECK-NEXT:    testb $1, %dil
11 ; CHECK-NEXT:    movl $m, %eax
12 ; CHECK-NEXT:    movl $n, %ecx
13 ; CHECK-NEXT:    cmoveq %rax, %rcx
14 ; CHECK-NEXT:    movl (%rcx), %eax
15 ; CHECK-NEXT:    retq
16 entry:
17   %0 = and i8 %small, 1
18   %cmp = icmp eq i8 %0, 0
19   %m.n = select i1 %cmp, ptr @m, ptr @n
20   %retval = load volatile i32, ptr %m.n, align 4
21   ret i32 %retval
25 define dso_local i32 @main2(i8 %small) {
26 ; CHECK-LABEL: main2:
27 ; CHECK:       # %bb.0: # %entry
28 ; CHECK-NEXT:    movl $m, %eax
29 ; CHECK-NEXT:    movl $n, %ecx
30 ; CHECK-NEXT:    testb $1, %dil
31 ; CHECK-NEXT:    cmovneq %rax, %rcx
32 ; CHECK-NEXT:    movl (%rcx), %eax
33 ; CHECK-NEXT:    retq
34 entry:
35   %0 = and i8 %small, 1
36   %cmp = icmp eq i8 %0, 1
37   %m.n = select i1 %cmp, ptr @m, ptr @n
38   %retval = load volatile i32, ptr %m.n, align 4
39   ret i32 %retval