Home | History | Annotate | Download | only in X86
      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
      3 
      4 @n = common global i32 0, align 4
      5 @m = common global i32 0, align 4
      6 
      7 define 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, i32* @m, i32* @n
     20   %retval = load volatile i32, i32* %m.n, align 4
     21   ret i32 %retval
     22 }
     23 
     24 
     25 define 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, i32* @m, i32* @n
     38   %retval = load volatile i32, i32* %m.n, align 4
     39   ret i32 %retval
     40 }
     41