[llvm] r316911 - [X86] Regenerate test using update_llc_test_checks.py

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 30 07:50:10 PDT 2017


Author: ctopper
Date: Mon Oct 30 07:50:10 2017
New Revision: 316911

URL: http://llvm.org/viewvc/llvm-project?rev=316911&view=rev
Log:
[X86] Regenerate test using update_llc_test_checks.py

Modified:
    llvm/trunk/test/CodeGen/X86/pr32284.ll

Modified: llvm/trunk/test/CodeGen/X86/pr32284.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr32284.ll?rev=316911&r1=316910&r2=316911&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/pr32284.ll (original)
+++ llvm/trunk/test/CodeGen/X86/pr32284.ll Mon Oct 30 07:50:10 2017
@@ -1,17 +1,79 @@
-; RUN: llc -O0 -mtriple=x86_64-unknown -mcpu=skx -o - %s | FileCheck %s --check-prefixes=CHECK,X64
-; RUN: llc     -mtriple=x86_64-unknown -mcpu=skx -o - %s | FileCheck %s --check-prefixes=CHECK,X64
-; RUN: llc -O0 -mtriple=i686-unknown   -mcpu=skx -o - %s | FileCheck %s --check-prefixes=CHECK,686
-; RUN: llc     -mtriple=i686-unknown   -mcpu=skx -o - %s | FileCheck %s --check-prefixes=CHECK,686
-; REQUIRES: asserts
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -O0 -mtriple=x86_64-unknown -mcpu=skx -o - %s | FileCheck %s --check-prefix=X86-O0
+; RUN: llc     -mtriple=x86_64-unknown -mcpu=skx -o - %s | FileCheck %s --check-prefix=X64
+; RUN: llc -O0 -mtriple=i686-unknown   -mcpu=skx -o - %s | FileCheck %s --check-prefix=686-O0
+; RUN: llc     -mtriple=i686-unknown   -mcpu=skx -o - %s | FileCheck %s --check-prefix=686
 
 @c = external constant i8, align 1
 
 define void @foo() {
-; CHECK-LABEL: foo:
-; CHECK:    # BB#0: # %entry
-; CHECK-DAG:    setne
-; CHECK-DAG:    setle
-; CHECK:    ret
+; X86-O0-LABEL: foo:
+; X86-O0:       # BB#0: # %entry
+; X86-O0-NEXT:    movb {{.*}}(%rip), %al
+; X86-O0-NEXT:    testb %al, %al
+; X86-O0-NEXT:    setne -{{[0-9]+}}(%rsp)
+; X86-O0-NEXT:    movzbl {{.*}}(%rip), %ecx
+; X86-O0-NEXT:    testl %ecx, %ecx
+; X86-O0-NEXT:    setne %al
+; X86-O0-NEXT:    movzbl %al, %edx
+; X86-O0-NEXT:    subl %ecx, %edx
+; X86-O0-NEXT:    setle %al
+; X86-O0-NEXT:    andb $1, %al
+; X86-O0-NEXT:    movzbl %al, %ecx
+; X86-O0-NEXT:    movl %ecx, -{{[0-9]+}}(%rsp)
+; X86-O0-NEXT:    movl %edx, -{{[0-9]+}}(%rsp) # 4-byte Spill
+; X86-O0-NEXT:    retq
+;
+; X64-LABEL: foo:
+; X64:       # BB#0: # %entry
+; X64-NEXT:    movzbl {{.*}}(%rip), %eax
+; X64-NEXT:    testb %al, %al
+; X64-NEXT:    setne -{{[0-9]+}}(%rsp)
+; X64-NEXT:    xorl %ecx, %ecx
+; X64-NEXT:    testl %eax, %eax
+; X64-NEXT:    setne %cl
+; X64-NEXT:    xorl %edx, %edx
+; X64-NEXT:    cmpl %eax, %ecx
+; X64-NEXT:    setle %dl
+; X64-NEXT:    movl %edx, -{{[0-9]+}}(%rsp)
+; X64-NEXT:    retq
+;
+; 686-O0-LABEL: foo:
+; 686-O0:       # BB#0: # %entry
+; 686-O0-NEXT:    subl $12, %esp
+; 686-O0-NEXT:    .cfi_def_cfa_offset 16
+; 686-O0-NEXT:    movb c, %al
+; 686-O0-NEXT:    testb %al, %al
+; 686-O0-NEXT:    setne {{[0-9]+}}(%esp)
+; 686-O0-NEXT:    movzbl c, %ecx
+; 686-O0-NEXT:    testl %ecx, %ecx
+; 686-O0-NEXT:    setne %al
+; 686-O0-NEXT:    movzbl %al, %edx
+; 686-O0-NEXT:    subl %ecx, %edx
+; 686-O0-NEXT:    setle %al
+; 686-O0-NEXT:    andb $1, %al
+; 686-O0-NEXT:    movzbl %al, %ecx
+; 686-O0-NEXT:    movl %ecx, {{[0-9]+}}(%esp)
+; 686-O0-NEXT:    movl %edx, (%esp) # 4-byte Spill
+; 686-O0-NEXT:    addl $12, %esp
+; 686-O0-NEXT:    retl
+;
+; 686-LABEL: foo:
+; 686:       # BB#0: # %entry
+; 686-NEXT:    subl $8, %esp
+; 686-NEXT:    .cfi_def_cfa_offset 12
+; 686-NEXT:    movzbl c, %eax
+; 686-NEXT:    xorl %ecx, %ecx
+; 686-NEXT:    testl %eax, %eax
+; 686-NEXT:    setne %cl
+; 686-NEXT:    testb %al, %al
+; 686-NEXT:    setne {{[0-9]+}}(%esp)
+; 686-NEXT:    xorl %edx, %edx
+; 686-NEXT:    cmpl %eax, %ecx
+; 686-NEXT:    setle %dl
+; 686-NEXT:    movl %edx, {{[0-9]+}}(%esp)
+; 686-NEXT:    addl $8, %esp
+; 686-NEXT:    retl
 entry:
   %a = alloca i8, align 1
   %b = alloca i32, align 4
@@ -42,12 +104,163 @@ entry:
 @_ZN8struct_210member_2_0E = external global i64, align 8
 
 define void @f1() {
-; CHECK-LABEL: f1:
-; CHECK:       # BB#0: # %entry
-; CHECK:    sete
-; X64:      addq $7093, {{.*}}
-; 686:      addl $7093, {{.*}}
-; CHECK:    ret
+; X86-O0-LABEL: f1:
+; X86-O0:       # BB#0: # %entry
+; X86-O0-NEXT:    movslq {{.*}}(%rip), %rax
+; X86-O0-NEXT:    movq %rax, %rcx
+; X86-O0-NEXT:    subq $-1, %rcx
+; X86-O0-NEXT:    setne %dl
+; X86-O0-NEXT:    movabsq $-8381627093, %rsi # imm = 0xFFFFFFFE0C6A852B
+; X86-O0-NEXT:    movq %rax, %rdi
+; X86-O0-NEXT:    subq %rsi, %rdi
+; X86-O0-NEXT:    setne -{{[0-9]+}}(%rsp)
+; X86-O0-NEXT:    movl %eax, %r8d
+; X86-O0-NEXT:    subl $-1, %r8d
+; X86-O0-NEXT:    sete %r9b
+; X86-O0-NEXT:    movzbl %r9b, %r10d
+; X86-O0-NEXT:    movl %r10d, %esi
+; X86-O0-NEXT:    addq $7093, %rax # imm = 0x1BB5
+; X86-O0-NEXT:    subq %rax, %rsi
+; X86-O0-NEXT:    setg %r9b
+; X86-O0-NEXT:    movzbl %r9b, %r10d
+; X86-O0-NEXT:    movl %r10d, %eax
+; X86-O0-NEXT:    movq %rax, {{.*}}(%rip)
+; X86-O0-NEXT:    xorb $-1, %dl
+; X86-O0-NEXT:    andb $1, %dl
+; X86-O0-NEXT:    movzbl %dl, %r10d
+; X86-O0-NEXT:    movl %r10d, %eax
+; X86-O0-NEXT:    movq %rax, _ZN8struct_210member_2_0E
+; X86-O0-NEXT:    movq %rsi, -{{[0-9]+}}(%rsp) # 8-byte Spill
+; X86-O0-NEXT:    movq %rcx, -{{[0-9]+}}(%rsp) # 8-byte Spill
+; X86-O0-NEXT:    movl %r8d, -{{[0-9]+}}(%rsp) # 4-byte Spill
+; X86-O0-NEXT:    movq %rdi, -{{[0-9]+}}(%rsp) # 8-byte Spill
+; X86-O0-NEXT:    retq
+;
+; X64-LABEL: f1:
+; X64:       # BB#0: # %entry
+; X64-NEXT:    movslq {{.*}}(%rip), %rax
+; X64-NEXT:    xorl %ecx, %ecx
+; X64-NEXT:    cmpq $-1, %rax
+; X64-NEXT:    sete %cl
+; X64-NEXT:    movabsq $-8381627093, %rdx # imm = 0xFFFFFFFE0C6A852B
+; X64-NEXT:    cmpq %rdx, %rax
+; X64-NEXT:    setne -{{[0-9]+}}(%rsp)
+; X64-NEXT:    xorl %edx, %edx
+; X64-NEXT:    cmpl $-1, %eax
+; X64-NEXT:    sete %dl
+; X64-NEXT:    addq $7093, %rax # imm = 0x1BB5
+; X64-NEXT:    xorl %esi, %esi
+; X64-NEXT:    cmpq %rax, %rdx
+; X64-NEXT:    setg %sil
+; X64-NEXT:    movq %rsi, {{.*}}(%rip)
+; X64-NEXT:    movq %rcx, {{.*}}(%rip)
+; X64-NEXT:    retq
+;
+; 686-O0-LABEL: f1:
+; 686-O0:       # BB#0: # %entry
+; 686-O0-NEXT:    pushl %ebp
+; 686-O0-NEXT:    .cfi_def_cfa_offset 8
+; 686-O0-NEXT:    pushl %ebx
+; 686-O0-NEXT:    .cfi_def_cfa_offset 12
+; 686-O0-NEXT:    pushl %edi
+; 686-O0-NEXT:    .cfi_def_cfa_offset 16
+; 686-O0-NEXT:    pushl %esi
+; 686-O0-NEXT:    .cfi_def_cfa_offset 20
+; 686-O0-NEXT:    subl $36, %esp
+; 686-O0-NEXT:    .cfi_def_cfa_offset 56
+; 686-O0-NEXT:    .cfi_offset %esi, -20
+; 686-O0-NEXT:    .cfi_offset %edi, -16
+; 686-O0-NEXT:    .cfi_offset %ebx, -12
+; 686-O0-NEXT:    .cfi_offset %ebp, -8
+; 686-O0-NEXT:    movl var_5, %eax
+; 686-O0-NEXT:    movl %eax, %ecx
+; 686-O0-NEXT:    sarl $31, %ecx
+; 686-O0-NEXT:    movl %eax, %edx
+; 686-O0-NEXT:    andl %ecx, %edx
+; 686-O0-NEXT:    subl $-1, %edx
+; 686-O0-NEXT:    sete %bl
+; 686-O0-NEXT:    movl %eax, %esi
+; 686-O0-NEXT:    xorl $208307499, %esi # imm = 0xC6A852B
+; 686-O0-NEXT:    movl %ecx, %edi
+; 686-O0-NEXT:    xorl $-2, %edi
+; 686-O0-NEXT:    orl %edi, %esi
+; 686-O0-NEXT:    setne {{[0-9]+}}(%esp)
+; 686-O0-NEXT:    movl %eax, %edi
+; 686-O0-NEXT:    subl $-1, %edi
+; 686-O0-NEXT:    sete %bh
+; 686-O0-NEXT:    movzbl %bh, %ebp
+; 686-O0-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
+; 686-O0-NEXT:    xorl %eax, %eax
+; 686-O0-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
+; 686-O0-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
+; 686-O0-NEXT:    addl $7093, %eax # imm = 0x1BB5
+; 686-O0-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
+; 686-O0-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
+; 686-O0-NEXT:    adcxl %eax, %ecx
+; 686-O0-NEXT:    movl {{[0-9]+}}(%esp), %eax # 4-byte Reload
+; 686-O0-NEXT:    subl %ebp, %eax
+; 686-O0-NEXT:    sbbl $0, %ecx
+; 686-O0-NEXT:    setl %bh
+; 686-O0-NEXT:    movzbl %bh, %ebp
+; 686-O0-NEXT:    movl %ebp, var_57
+; 686-O0-NEXT:    movl $0, var_57+4
+; 686-O0-NEXT:    movzbl %bl, %ebp
+; 686-O0-NEXT:    movl %ebp, _ZN8struct_210member_2_0E
+; 686-O0-NEXT:    movl $0, _ZN8struct_210member_2_0E+4
+; 686-O0-NEXT:    movl %edi, {{[0-9]+}}(%esp) # 4-byte Spill
+; 686-O0-NEXT:    movl %eax, {{[0-9]+}}(%esp) # 4-byte Spill
+; 686-O0-NEXT:    movl %edx, {{[0-9]+}}(%esp) # 4-byte Spill
+; 686-O0-NEXT:    movl %ecx, {{[0-9]+}}(%esp) # 4-byte Spill
+; 686-O0-NEXT:    movl %esi, (%esp) # 4-byte Spill
+; 686-O0-NEXT:    addl $36, %esp
+; 686-O0-NEXT:    popl %esi
+; 686-O0-NEXT:    popl %edi
+; 686-O0-NEXT:    popl %ebx
+; 686-O0-NEXT:    popl %ebp
+; 686-O0-NEXT:    retl
+;
+; 686-LABEL: f1:
+; 686:       # BB#0: # %entry
+; 686-NEXT:    pushl %edi
+; 686-NEXT:    .cfi_def_cfa_offset 8
+; 686-NEXT:    pushl %esi
+; 686-NEXT:    .cfi_def_cfa_offset 12
+; 686-NEXT:    subl $1, %esp
+; 686-NEXT:    .cfi_def_cfa_offset 13
+; 686-NEXT:    .cfi_offset %esi, -12
+; 686-NEXT:    .cfi_offset %edi, -8
+; 686-NEXT:    movl var_5, %edx
+; 686-NEXT:    movl %edx, %esi
+; 686-NEXT:    sarl $31, %esi
+; 686-NEXT:    movl %edx, %ecx
+; 686-NEXT:    andl %esi, %ecx
+; 686-NEXT:    xorl %eax, %eax
+; 686-NEXT:    cmpl $-1, %ecx
+; 686-NEXT:    sete %al
+; 686-NEXT:    movl %edx, %ecx
+; 686-NEXT:    xorl $208307499, %ecx # imm = 0xC6A852B
+; 686-NEXT:    movl %esi, %edi
+; 686-NEXT:    xorl $-2, %edi
+; 686-NEXT:    orl %ecx, %edi
+; 686-NEXT:    setne (%esp)
+; 686-NEXT:    xorl %ecx, %ecx
+; 686-NEXT:    cmpl $-1, %edx
+; 686-NEXT:    sete %cl
+; 686-NEXT:    xorl %edi, %edi
+; 686-NEXT:    addl $7093, %edx # imm = 0x1BB5
+; 686-NEXT:    adcxl %edi, %esi
+; 686-NEXT:    cmpl %ecx, %edx
+; 686-NEXT:    sbbl $0, %esi
+; 686-NEXT:    setl %cl
+; 686-NEXT:    movzbl %cl, %ecx
+; 686-NEXT:    movl %ecx, var_57
+; 686-NEXT:    movl $0, var_57+4
+; 686-NEXT:    movl %eax, _ZN8struct_210member_2_0E
+; 686-NEXT:    movl $0, _ZN8struct_210member_2_0E+4
+; 686-NEXT:    addl $1, %esp
+; 686-NEXT:    popl %esi
+; 686-NEXT:    popl %edi
+; 686-NEXT:    retl
 entry:
   %a = alloca i8, align 1
   %0 = load i32, i32* @var_5, align 4
@@ -80,13 +293,106 @@ entry:
 @var_7 = external global i8, align 1
 
 define void @f2() {
-; CHECK-LABEL: f2:
-; CHECK:       # BB#0: # %entry
-; X64:    movzbl {{.*}}(%rip), %[[R:[a-z]*]]
-; 686:    movzbl {{.*}}, %[[R:[a-z]*]]
-; CHECK:    test{{[qlwb]}} %[[R]], %[[R]]
-; CHECK:    sete {{.*}}
-; CHECK:    ret
+; X86-O0-LABEL: f2:
+; X86-O0:       # BB#0: # %entry
+; X86-O0-NEXT:    # implicit-def: %RAX
+; X86-O0-NEXT:    movzbl {{.*}}(%rip), %ecx
+; X86-O0-NEXT:    testl %ecx, %ecx
+; X86-O0-NEXT:    sete %dl
+; X86-O0-NEXT:    movzbl %dl, %esi
+; X86-O0-NEXT:    movl %ecx, %edi
+; X86-O0-NEXT:    xorl %esi, %edi
+; X86-O0-NEXT:    movw %di, %r8w
+; X86-O0-NEXT:    movw %r8w, -{{[0-9]+}}(%rsp)
+; X86-O0-NEXT:    movb %cl, %dl
+; X86-O0-NEXT:    testb %dl, %dl
+; X86-O0-NEXT:    sete %dl
+; X86-O0-NEXT:    movzbl %dl, %esi
+; X86-O0-NEXT:    subl %ecx, %esi
+; X86-O0-NEXT:    sete %dl
+; X86-O0-NEXT:    andb $1, %dl
+; X86-O0-NEXT:    movzbl %dl, %ecx
+; X86-O0-NEXT:    movw %cx, %r8w
+; X86-O0-NEXT:    movw %r8w, (%rax)
+; X86-O0-NEXT:    movl %esi, -{{[0-9]+}}(%rsp) # 4-byte Spill
+; X86-O0-NEXT:    retq
+;
+; X64-LABEL: f2:
+; X64:       # BB#0: # %entry
+; X64-NEXT:    movzbl {{.*}}(%rip), %eax
+; X64-NEXT:    xorl %ecx, %ecx
+; X64-NEXT:    testl %eax, %eax
+; X64-NEXT:    sete %cl
+; X64-NEXT:    xorl %eax, %ecx
+; X64-NEXT:    movw %cx, -{{[0-9]+}}(%rsp)
+; X64-NEXT:    xorl %ecx, %ecx
+; X64-NEXT:    testb %al, %al
+; X64-NEXT:    sete %cl
+; X64-NEXT:    xorl %edx, %edx
+; X64-NEXT:    cmpl %eax, %ecx
+; X64-NEXT:    sete %dl
+; X64-NEXT:    movw %dx, (%rax)
+; X64-NEXT:    retq
+;
+; 686-O0-LABEL: f2:
+; 686-O0:       # BB#0: # %entry
+; 686-O0-NEXT:    pushl %ebx
+; 686-O0-NEXT:    .cfi_def_cfa_offset 8
+; 686-O0-NEXT:    pushl %edi
+; 686-O0-NEXT:    .cfi_def_cfa_offset 12
+; 686-O0-NEXT:    pushl %esi
+; 686-O0-NEXT:    .cfi_def_cfa_offset 16
+; 686-O0-NEXT:    subl $8, %esp
+; 686-O0-NEXT:    .cfi_def_cfa_offset 24
+; 686-O0-NEXT:    .cfi_offset %esi, -16
+; 686-O0-NEXT:    .cfi_offset %edi, -12
+; 686-O0-NEXT:    .cfi_offset %ebx, -8
+; 686-O0-NEXT:    # implicit-def: %EAX
+; 686-O0-NEXT:    movzbl var_7, %ecx
+; 686-O0-NEXT:    testl %ecx, %ecx
+; 686-O0-NEXT:    sete %dl
+; 686-O0-NEXT:    movzbl %dl, %esi
+; 686-O0-NEXT:    movl %ecx, %edi
+; 686-O0-NEXT:    xorl %esi, %edi
+; 686-O0-NEXT:    movw %di, %bx
+; 686-O0-NEXT:    movw %bx, {{[0-9]+}}(%esp)
+; 686-O0-NEXT:    movl %ecx, %edx
+; 686-O0-NEXT:    # kill: %DL<def> %DL<kill> %EDX<kill>
+; 686-O0-NEXT:    testb %dl, %dl
+; 686-O0-NEXT:    sete %dl
+; 686-O0-NEXT:    movzbl %dl, %esi
+; 686-O0-NEXT:    subl %ecx, %esi
+; 686-O0-NEXT:    sete %dl
+; 686-O0-NEXT:    andb $1, %dl
+; 686-O0-NEXT:    movzbl %dl, %ecx
+; 686-O0-NEXT:    movw %cx, %bx
+; 686-O0-NEXT:    movw %bx, (%eax)
+; 686-O0-NEXT:    movl %esi, (%esp) # 4-byte Spill
+; 686-O0-NEXT:    addl $8, %esp
+; 686-O0-NEXT:    popl %esi
+; 686-O0-NEXT:    popl %edi
+; 686-O0-NEXT:    popl %ebx
+; 686-O0-NEXT:    retl
+;
+; 686-LABEL: f2:
+; 686:       # BB#0: # %entry
+; 686-NEXT:    subl $2, %esp
+; 686-NEXT:    .cfi_def_cfa_offset 6
+; 686-NEXT:    movzbl var_7, %eax
+; 686-NEXT:    xorl %ecx, %ecx
+; 686-NEXT:    testl %eax, %eax
+; 686-NEXT:    sete %cl
+; 686-NEXT:    xorl %eax, %ecx
+; 686-NEXT:    movw %cx, (%esp)
+; 686-NEXT:    xorl %ecx, %ecx
+; 686-NEXT:    testb %al, %al
+; 686-NEXT:    sete %cl
+; 686-NEXT:    xorl %edx, %edx
+; 686-NEXT:    cmpl %eax, %ecx
+; 686-NEXT:    sete %dl
+; 686-NEXT:    movw %dx, (%eax)
+; 686-NEXT:    addl $2, %esp
+; 686-NEXT:    retl
 entry:
   %a = alloca i16, align 2
   %0 = load i8, i8* @var_7, align 1
@@ -118,15 +424,116 @@ entry:
 @var_46 = external global i32, align 4
 
 define void @f3() #0 {
-; CHECK-LABEL: f3:
-; X64-DAG: movl    var_13(%rip), {{.*}}
-; X64-DAG: movl    var_16(%rip), {{.*}}
-; X64-DAG: movl   {{.*}},{{.*}}var_46{{.*}}
-; X64: retq
-; 686-DAG: movl    var_13, {{.*}}
-; 686-DAG: movl    var_16, {{.*}}
-; 686-DAG: movl   {{.*}},{{.*}}var_46{{.*}}
-; 686: retl
+; X86-O0-LABEL: f3:
+; X86-O0:       # BB#0: # %entry
+; X86-O0-NEXT:    movl {{.*}}(%rip), %eax
+; X86-O0-NEXT:    movl %eax, %ecx
+; X86-O0-NEXT:    movl $4294967295, %eax # imm = 0xFFFFFFFF
+; X86-O0-NEXT:    movl %eax, %edx
+; X86-O0-NEXT:    movq %rcx, %rsi
+; X86-O0-NEXT:    xorq %rdx, %rsi
+; X86-O0-NEXT:    movl %esi, %eax
+; X86-O0-NEXT:    testq %rcx, %rcx
+; X86-O0-NEXT:    sete %dil
+; X86-O0-NEXT:    movzbl %dil, %r8d
+; X86-O0-NEXT:    movl %r8d, %edx
+; X86-O0-NEXT:    movl {{.*}}(%rip), %r8d
+; X86-O0-NEXT:    xorl %r8d, %eax
+; X86-O0-NEXT:    movl %eax, %r9d
+; X86-O0-NEXT:    andq %r9, %rdx
+; X86-O0-NEXT:    movq %rsi, %r9
+; X86-O0-NEXT:    orq %rdx, %r9
+; X86-O0-NEXT:    movq %r9, -{{[0-9]+}}(%rsp)
+; X86-O0-NEXT:    movl %ecx, %eax
+; X86-O0-NEXT:    testl %eax, %eax
+; X86-O0-NEXT:    setne %dil
+; X86-O0-NEXT:    xorb $-1, %dil
+; X86-O0-NEXT:    andb $1, %dil
+; X86-O0-NEXT:    movzbl %dil, %eax
+; X86-O0-NEXT:    movl %eax, %ecx
+; X86-O0-NEXT:    andq $0, %rcx
+; X86-O0-NEXT:    orq %rcx, %rsi
+; X86-O0-NEXT:    movl %esi, %eax
+; X86-O0-NEXT:    movl %eax, var_46
+; X86-O0-NEXT:    retq
+;
+; X64-LABEL: f3:
+; X64:       # BB#0: # %entry
+; X64-NEXT:    movl {{.*}}(%rip), %eax
+; X64-NEXT:    movl $4294967295, %ecx # imm = 0xFFFFFFFF
+; X64-NEXT:    xorq %rax, %rcx
+; X64-NEXT:    xorl %edx, %edx
+; X64-NEXT:    testq %rax, %rax
+; X64-NEXT:    sete %dl
+; X64-NEXT:    movl {{.*}}(%rip), %eax
+; X64-NEXT:    xorl %ecx, %eax
+; X64-NEXT:    andq %rdx, %rax
+; X64-NEXT:    orq %rcx, %rax
+; X64-NEXT:    movq %rax, -{{[0-9]+}}(%rsp)
+; X64-NEXT:    movl %ecx, {{.*}}(%rip)
+; X64-NEXT:    retq
+;
+; 686-O0-LABEL: f3:
+; 686-O0:       # BB#0: # %entry
+; 686-O0-NEXT:    pushl %ebp
+; 686-O0-NEXT:    .cfi_def_cfa_offset 8
+; 686-O0-NEXT:    .cfi_offset %ebp, -8
+; 686-O0-NEXT:    movl %esp, %ebp
+; 686-O0-NEXT:    .cfi_def_cfa_register %ebp
+; 686-O0-NEXT:    pushl %edi
+; 686-O0-NEXT:    pushl %esi
+; 686-O0-NEXT:    andl $-8, %esp
+; 686-O0-NEXT:    subl $8, %esp
+; 686-O0-NEXT:    .cfi_offset %esi, -16
+; 686-O0-NEXT:    .cfi_offset %edi, -12
+; 686-O0-NEXT:    movl var_13, %eax
+; 686-O0-NEXT:    movl %eax, %ecx
+; 686-O0-NEXT:    notl %ecx
+; 686-O0-NEXT:    testl %eax, %eax
+; 686-O0-NEXT:    sete %dl
+; 686-O0-NEXT:    movzbl %dl, %eax
+; 686-O0-NEXT:    movl var_16, %esi
+; 686-O0-NEXT:    movl %ecx, %edi
+; 686-O0-NEXT:    xorl %esi, %edi
+; 686-O0-NEXT:    andl %edi, %eax
+; 686-O0-NEXT:    movb %al, %dl
+; 686-O0-NEXT:    movzbl %dl, %eax
+; 686-O0-NEXT:    movl %ecx, %esi
+; 686-O0-NEXT:    orl %eax, %esi
+; 686-O0-NEXT:    movl %esi, (%esp)
+; 686-O0-NEXT:    movl $0, {{[0-9]+}}(%esp)
+; 686-O0-NEXT:    movl %ecx, var_46
+; 686-O0-NEXT:    leal -8(%ebp), %esp
+; 686-O0-NEXT:    popl %esi
+; 686-O0-NEXT:    popl %edi
+; 686-O0-NEXT:    popl %ebp
+; 686-O0-NEXT:    retl
+;
+; 686-LABEL: f3:
+; 686:       # BB#0: # %entry
+; 686-NEXT:    pushl %ebp
+; 686-NEXT:    .cfi_def_cfa_offset 8
+; 686-NEXT:    .cfi_offset %ebp, -8
+; 686-NEXT:    movl %esp, %ebp
+; 686-NEXT:    .cfi_def_cfa_register %ebp
+; 686-NEXT:    andl $-8, %esp
+; 686-NEXT:    subl $8, %esp
+; 686-NEXT:    movl var_13, %ecx
+; 686-NEXT:    xorl %eax, %eax
+; 686-NEXT:    testl %ecx, %ecx
+; 686-NEXT:    notl %ecx
+; 686-NEXT:    sete %al
+; 686-NEXT:    movl var_16, %edx
+; 686-NEXT:    xorl %ecx, %edx
+; 686-NEXT:    andl %eax, %edx
+; 686-NEXT:    movzbl %dl, %eax
+; 686-NEXT:    orl %ecx, %eax
+; 686-NEXT:    movl %eax, (%esp)
+; 686-NEXT:    movl $0, {{[0-9]+}}(%esp)
+; 686-NEXT:    movl %ecx, var_46
+; 686-NEXT:    movl %ebp, %esp
+; 686-NEXT:    popl %ebp
+; 686-NEXT:    retl
 entry:
   %a = alloca i64, align 8
   %0 = load i32, i32* @var_13, align 4




More information about the llvm-commits mailing list