brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 3820842 Raw
82 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s --check-prefixes=X863; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefixes=X644 5define void @f(i64 %a, i64 %b) nounwind {6; X86-LABEL: f:7; X86:       # %bb.0: # %entry8; X86-NEXT:    pushl %edi9; X86-NEXT:    pushl %esi10; X86-NEXT:    movl {{[0-9]+}}(%esp), %esi11; X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax12; X86-NEXT:    movl $-65536, %edi # imm = 0xFFFF000013; X86-NEXT:    cmpl $65527, %eax # imm = 0xFFF714; X86-NEXT:    jne .LBB0_215; X86-NEXT:  # %bb.1: # %if.then16; X86-NEXT:    calll ext1@PLT17; X86-NEXT:  .LBB0_2: # %if.end18; X86-NEXT:    calll ext2@PLT19; X86-NEXT:    andl %edi, %esi20; X86-NEXT:    cmpl $-589824, %esi # imm = 0xFFF7000021; X86-NEXT:    jne .LBB0_322; X86-NEXT:  # %bb.4: # %if.then223; X86-NEXT:    popl %esi24; X86-NEXT:    popl %edi25; X86-NEXT:    jmp ext1@PLT # TAILCALL26; X86-NEXT:  .LBB0_3: # %if.end327; X86-NEXT:    popl %esi28; X86-NEXT:    popl %edi29; X86-NEXT:    retl30;31; X64-LABEL: f:32; X64:       # %bb.0: # %entry33; X64-NEXT:    pushq %r1434; X64-NEXT:    pushq %rbx35; X64-NEXT:    pushq %rax36; X64-NEXT:    movq %rsi, %rbx37; X64-NEXT:    movabsq $-281474976710656, %r14 # imm = 0xFFFF00000000000038; X64-NEXT:    shrq $48, %rdi39; X64-NEXT:    cmpl $65527, %edi # imm = 0xFFF740; X64-NEXT:    jne .LBB0_241; X64-NEXT:  # %bb.1: # %if.then42; X64-NEXT:    callq ext1@PLT43; X64-NEXT:  .LBB0_2: # %if.end44; X64-NEXT:    callq ext2@PLT45; X64-NEXT:    andq %r14, %rbx46; X64-NEXT:    movabsq $-2533274790395904, %rax # imm = 0xFFF700000000000047; X64-NEXT:    addq $8, %rsp48; X64-NEXT:    cmpq %rax, %rbx49; X64-NEXT:    jne .LBB0_350; X64-NEXT:  # %bb.4: # %if.then251; X64-NEXT:    popq %rbx52; X64-NEXT:    popq %r1453; X64-NEXT:    jmp ext1@PLT # TAILCALL54; X64-NEXT:  .LBB0_3: # %if.end355; X64-NEXT:    popq %rbx56; X64-NEXT:    popq %r1457; X64-NEXT:    retq58entry:59  %shr.mask.i = and i64 %a, -28147497671065660  %cmp.i = icmp eq i64 %shr.mask.i, -253327479039590461  br i1 %cmp.i, label %if.then, label %if.end62 63if.then:64  tail call void @ext1()65  br label %if.end66 67if.end:68  tail call void @ext2()69  %shr.mask.i4 = and i64 %b, -28147497671065670  %cmp.i5 = icmp eq i64 %shr.mask.i4, -253327479039590471  br i1 %cmp.i5, label %if.then2, label %if.end372 73if.then2:74  tail call void @ext1()75  br label %if.end376 77if.end3:78  ret void79}80declare void @ext1()81declare void @ext2()82