brintos

brintos / llvm-project-archived public Read only

0
0
Text · 15.5 KiB · 62c63d5 Raw
412 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=x86_64-pc-linux -stackrealign -verify-machineinstrs < %s | FileCheck %s3; RUN: llc -mtriple=x86_64-pc-linux-gnux32 -stackrealign -verify-machineinstrs < %s | FileCheck -check-prefix=X32ABI %s4 5declare i32 @helper() nounwind6define void @base() #0 {7; CHECK-LABEL: base:8; CHECK:       # %bb.0: # %entry9; CHECK-NEXT:    pushq %rbp10; CHECK-NEXT:    .cfi_def_cfa_offset 1611; CHECK-NEXT:    .cfi_offset %rbp, -1612; CHECK-NEXT:    movq %rsp, %rbp13; CHECK-NEXT:    .cfi_def_cfa_register %rbp14; CHECK-NEXT:    pushq %rbx15; CHECK-NEXT:    andq $-32, %rsp16; CHECK-NEXT:    subq $32, %rsp17; CHECK-NEXT:    movq %rsp, %rbx18; CHECK-NEXT:    .cfi_offset %rbx, -2419; CHECK-NEXT:    callq helper@PLT20; CHECK-NEXT:    movq %rsp, %rcx21; CHECK-NEXT:    movl %eax, %eax22; CHECK-NEXT:    leaq 31(,%rax,4), %rax23; CHECK-NEXT:    andq $-32, %rax24; CHECK-NEXT:    movq %rcx, %rdx25; CHECK-NEXT:    subq %rax, %rdx26; CHECK-NEXT:    movq %rdx, %rsp27; CHECK-NEXT:    negq %rax28; CHECK-NEXT:    movl $0, (%rcx,%rax)29; CHECK-NEXT:    leaq -8(%rbp), %rsp30; CHECK-NEXT:    popq %rbx31; CHECK-NEXT:    popq %rbp32; CHECK-NEXT:    .cfi_def_cfa %rsp, 833; CHECK-NEXT:    retq34;35; X32ABI-LABEL: base:36; X32ABI:       # %bb.0: # %entry37; X32ABI-NEXT:    pushq %rbp38; X32ABI-NEXT:    .cfi_def_cfa_offset 1639; X32ABI-NEXT:    .cfi_offset %rbp, -1640; X32ABI-NEXT:    movl %esp, %ebp41; X32ABI-NEXT:    .cfi_def_cfa_register %rbp42; X32ABI-NEXT:    pushq %rbx43; X32ABI-NEXT:    andl $-32, %esp44; X32ABI-NEXT:    subl $32, %esp45; X32ABI-NEXT:    movl %esp, %ebx46; X32ABI-NEXT:    .cfi_offset %rbx, -2447; X32ABI-NEXT:    callq helper@PLT48; X32ABI-NEXT:    # kill: def $eax killed $eax def $rax49; X32ABI-NEXT:    leal 31(,%rax,4), %eax50; X32ABI-NEXT:    andl $-32, %eax51; X32ABI-NEXT:    movl %esp, %ecx52; X32ABI-NEXT:    movl %ecx, %edx53; X32ABI-NEXT:    subl %eax, %edx54; X32ABI-NEXT:    negl %eax55; X32ABI-NEXT:    movl %edx, %esp56; X32ABI-NEXT:    movl $0, (%ecx,%eax)57; X32ABI-NEXT:    leal -8(%ebp), %esp58; X32ABI-NEXT:    popq %rbx59; X32ABI-NEXT:    popq %rbp60; X32ABI-NEXT:    .cfi_def_cfa %rsp, 861; X32ABI-NEXT:    retq62entry:63  %k = call i32 @helper()64  %a = alloca i32, i32 %k, align 465  store i32 0, ptr %a, align 466  ret void67}68 69define void @clobber_base() #0 {70; CHECK-LABEL: clobber_base:71; CHECK:       # %bb.0: # %entry72; CHECK-NEXT:    leaq {{[0-9]+}}(%rsp), %r1073; CHECK-NEXT:    .cfi_def_cfa %r10, 074; CHECK-NEXT:    andq $-128, %rsp75; CHECK-NEXT:    pushq -8(%r10)76; CHECK-NEXT:    pushq %rbp77; CHECK-NEXT:    movq %rsp, %rbp78; CHECK-NEXT:    .cfi_escape 0x10, 0x06, 0x02, 0x76, 0x00 #79; CHECK-NEXT:    pushq %rbx80; CHECK-NEXT:    subq $232, %rsp81; CHECK-NEXT:    movq %r10, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill82; CHECK-NEXT:    .cfi_escape 0x10, 0x03, 0x02, 0x76, 0x78 #83; CHECK-NEXT:    .cfi_escape 0x0f, 0x04, 0x76, 0x88, 0x7f, 0x06 #84; CHECK-NEXT:    callq helper@PLT85; CHECK-NEXT:    movq %rsp, %rcx86; CHECK-NEXT:    movl %eax, %eax87; CHECK-NEXT:    leaq 31(,%rax,4), %rax88; CHECK-NEXT:    andq $-32, %rax89; CHECK-NEXT:    movq %rcx, %rdx90; CHECK-NEXT:    subq %rax, %rdx91; CHECK-NEXT:    movq %rdx, %rsp92; CHECK-NEXT:    negq %rax93; CHECK-NEXT:    movl $405, %ebx # imm = 0x19594; CHECK-NEXT:    #APP95; CHECK-NEXT:    nop96; CHECK-NEXT:    #NO_APP97; CHECK-NEXT:    movl $8, %edx98; CHECK-NEXT:    #APP99; CHECK-NEXT:    movl %edx, -112(%rbp)100; CHECK-NEXT:    #NO_APP101; CHECK-NEXT:    movl $0, (%rcx,%rax)102; CHECK-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %r10 # 8-byte Reload103; CHECK-NEXT:    leaq -8(%rbp), %rsp104; CHECK-NEXT:    popq %rbx105; CHECK-NEXT:    popq %rbp106; CHECK-NEXT:    leaq -8(%r10), %rsp107; CHECK-NEXT:    .cfi_def_cfa %rsp, 8108; CHECK-NEXT:    retq109;110; X32ABI-LABEL: clobber_base:111; X32ABI:       # %bb.0: # %entry112; X32ABI-NEXT:    pushq %rbp113; X32ABI-NEXT:    .cfi_def_cfa_offset 16114; X32ABI-NEXT:    .cfi_offset %rbp, -16115; X32ABI-NEXT:    movl %esp, %ebp116; X32ABI-NEXT:    .cfi_def_cfa_register %rbp117; X32ABI-NEXT:    pushq %rbx118; X32ABI-NEXT:    andl $-128, %esp119; X32ABI-NEXT:    subl $128, %esp120; X32ABI-NEXT:    movl %esp, %ebx121; X32ABI-NEXT:    .cfi_offset %rbx, -24122; X32ABI-NEXT:    callq helper@PLT123; X32ABI-NEXT:    # kill: def $eax killed $eax def $rax124; X32ABI-NEXT:    leal 31(,%rax,4), %eax125; X32ABI-NEXT:    andl $-32, %eax126; X32ABI-NEXT:    movl %esp, %ecx127; X32ABI-NEXT:    movl %ecx, %edx128; X32ABI-NEXT:    subl %eax, %edx129; X32ABI-NEXT:    negl %eax130; X32ABI-NEXT:    movl %edx, %esp131; X32ABI-NEXT:    pushq %rbx132; X32ABI-NEXT:    subl $24, %esp133; X32ABI-NEXT:    movl $405, %ebx # imm = 0x195134; X32ABI-NEXT:    #APP135; X32ABI-NEXT:    nop136; X32ABI-NEXT:    #NO_APP137; X32ABI-NEXT:    addl $24, %esp138; X32ABI-NEXT:    popq %rbx139; X32ABI-NEXT:    movl $8, %edx140; X32ABI-NEXT:    #APP141; X32ABI-NEXT:    movl %edx, (%ebx)142; X32ABI-NEXT:    #NO_APP143; X32ABI-NEXT:    movl $0, (%ecx,%eax)144; X32ABI-NEXT:    leal -8(%ebp), %esp145; X32ABI-NEXT:    popq %rbx146; X32ABI-NEXT:    popq %rbp147; X32ABI-NEXT:    .cfi_def_cfa %rsp, 8148; X32ABI-NEXT:    retq149entry:150  %k = call i32 @helper()151  %a = alloca i32, align 128152  %b = alloca i32, i32 %k, align 4153  ; clobber base pointer register154  tail call void asm sideeffect "nop", "{bx}"(i32 405)155  call void asm sideeffect "movl $0, $1", "r,*m"(i32 8, ptr elementtype(i32) %a)156  store i32 0, ptr %b, align 4157  ret void158}159 160define x86_regcallcc void @clobber_baseptr_argptr(i32 %param1, i32 %param2, i32 %param3, i32 %param4, i32 %param5, i32 %param6, i32 %param7, i32 %param8, i32 %param9, i32 %param10, i32 %param11, i32 %param12) #0 {161; CHECK-LABEL: clobber_baseptr_argptr:162; CHECK:       # %bb.0: # %entry163; CHECK-NEXT:    leaq {{[0-9]+}}(%rsp), %r10164; CHECK-NEXT:    .cfi_def_cfa %r10, 0165; CHECK-NEXT:    andq $-128, %rsp166; CHECK-NEXT:    pushq -8(%r10)167; CHECK-NEXT:    pushq %rbp168; CHECK-NEXT:    movq %rsp, %rbp169; CHECK-NEXT:    .cfi_escape 0x10, 0x06, 0x02, 0x76, 0x00 #170; CHECK-NEXT:    pushq %rbx171; CHECK-NEXT:    subq $360, %rsp # imm = 0x168172; CHECK-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill173; CHECK-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill174; CHECK-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill175; CHECK-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill176; CHECK-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill177; CHECK-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill178; CHECK-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill179; CHECK-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill180; CHECK-NEXT:    movq %r10, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill181; CHECK-NEXT:    .cfi_escape 0x10, 0x03, 0x02, 0x76, 0x78 #182; CHECK-NEXT:    .cfi_escape 0x10, 0x19, 0x02, 0x76, 0xf0, 0x7e #183; CHECK-NEXT:    .cfi_escape 0x10, 0x1a, 0x02, 0x76, 0x80, 0x7f #184; CHECK-NEXT:    .cfi_escape 0x10, 0x1b, 0x02, 0x76, 0x90, 0x7f #185; CHECK-NEXT:    .cfi_escape 0x10, 0x1c, 0x02, 0x76, 0xa0, 0x7f #186; CHECK-NEXT:    .cfi_escape 0x10, 0x1d, 0x02, 0x76, 0xb0, 0x7f #187; CHECK-NEXT:    .cfi_escape 0x10, 0x1e, 0x02, 0x76, 0x40 #188; CHECK-NEXT:    .cfi_escape 0x10, 0x1f, 0x02, 0x76, 0x50 #189; CHECK-NEXT:    .cfi_escape 0x10, 0x20, 0x02, 0x76, 0x60 #190; CHECK-NEXT:    .cfi_escape 0x0f, 0x04, 0x76, 0x88, 0x7e, 0x06 #191; CHECK-NEXT:    movl (%r10), %r14d192; CHECK-NEXT:    callq helper@PLT193; CHECK-NEXT:    movq %rsp, %rcx194; CHECK-NEXT:    movl %eax, %eax195; CHECK-NEXT:    leaq 31(,%rax,4), %rax196; CHECK-NEXT:    andq $-32, %rax197; CHECK-NEXT:    movq %rcx, %rdx198; CHECK-NEXT:    subq %rax, %rdx199; CHECK-NEXT:    movq %rdx, %rsp200; CHECK-NEXT:    negq %rax201; CHECK-NEXT:    movl $405, %ebx # imm = 0x195202; CHECK-NEXT:    #APP203; CHECK-NEXT:    nop204; CHECK-NEXT:    #NO_APP205; CHECK-NEXT:    #APP206; CHECK-NEXT:    nop207; CHECK-NEXT:    #NO_APP208; CHECK-NEXT:    movl $8, %edx209; CHECK-NEXT:    #APP210; CHECK-NEXT:    movl %edx, -240(%rbp)211; CHECK-NEXT:    #NO_APP212; CHECK-NEXT:    movl %r14d, (%rcx,%rax)213; CHECK-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload214; CHECK-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload215; CHECK-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload216; CHECK-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload217; CHECK-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload218; CHECK-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Reload219; CHECK-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload220; CHECK-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload221; CHECK-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %r10 # 8-byte Reload222; CHECK-NEXT:    leaq -8(%rbp), %rsp223; CHECK-NEXT:    popq %rbx224; CHECK-NEXT:    popq %rbp225; CHECK-NEXT:    leaq -8(%r10), %rsp226; CHECK-NEXT:    .cfi_def_cfa %rsp, 8227; CHECK-NEXT:    retq228;229; X32ABI-LABEL: clobber_baseptr_argptr:230; X32ABI:       # %bb.0: # %entry231; X32ABI-NEXT:    pushq %rbp232; X32ABI-NEXT:    .cfi_def_cfa_offset 16233; X32ABI-NEXT:    .cfi_offset %rbp, -16234; X32ABI-NEXT:    movl %esp, %ebp235; X32ABI-NEXT:    .cfi_def_cfa_register %rbp236; X32ABI-NEXT:    pushq %rbx237; X32ABI-NEXT:    andl $-128, %esp238; X32ABI-NEXT:    subl $256, %esp # imm = 0x100239; X32ABI-NEXT:    movaps %xmm15, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill240; X32ABI-NEXT:    movaps %xmm14, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill241; X32ABI-NEXT:    movaps %xmm13, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill242; X32ABI-NEXT:    movaps %xmm12, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill243; X32ABI-NEXT:    movaps %xmm11, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill244; X32ABI-NEXT:    movaps %xmm10, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill245; X32ABI-NEXT:    movaps %xmm9, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill246; X32ABI-NEXT:    movaps %xmm8, {{[-0-9]+}}(%e{{[sb]}}p) # 16-byte Spill247; X32ABI-NEXT:    movl %esp, %ebx248; X32ABI-NEXT:    .cfi_offset %rbx, -24249; X32ABI-NEXT:    .cfi_offset %xmm8, -160250; X32ABI-NEXT:    .cfi_offset %xmm9, -144251; X32ABI-NEXT:    .cfi_offset %xmm10, -128252; X32ABI-NEXT:    .cfi_offset %xmm11, -112253; X32ABI-NEXT:    .cfi_offset %xmm12, -96254; X32ABI-NEXT:    .cfi_offset %xmm13, -80255; X32ABI-NEXT:    .cfi_offset %xmm14, -64256; X32ABI-NEXT:    .cfi_offset %xmm15, -48257; X32ABI-NEXT:    movl 16(%ebp), %r14d258; X32ABI-NEXT:    callq helper@PLT259; X32ABI-NEXT:    # kill: def $eax killed $eax def $rax260; X32ABI-NEXT:    leal 31(,%rax,4), %eax261; X32ABI-NEXT:    andl $-32, %eax262; X32ABI-NEXT:    movl %esp, %ecx263; X32ABI-NEXT:    movl %ecx, %edx264; X32ABI-NEXT:    subl %eax, %edx265; X32ABI-NEXT:    negl %eax266; X32ABI-NEXT:    movl %edx, %esp267; X32ABI-NEXT:    pushq %rbx268; X32ABI-NEXT:    subl $24, %esp269; X32ABI-NEXT:    movl $405, %ebx # imm = 0x195270; X32ABI-NEXT:    #APP271; X32ABI-NEXT:    nop272; X32ABI-NEXT:    #NO_APP273; X32ABI-NEXT:    #APP274; X32ABI-NEXT:    nop275; X32ABI-NEXT:    #NO_APP276; X32ABI-NEXT:    addl $24, %esp277; X32ABI-NEXT:    popq %rbx278; X32ABI-NEXT:    movl $8, %edx279; X32ABI-NEXT:    #APP280; X32ABI-NEXT:    movl %edx, (%ebx)281; X32ABI-NEXT:    #NO_APP282; X32ABI-NEXT:    movl %r14d, (%ecx,%eax)283; X32ABI-NEXT:    movaps {{[-0-9]+}}(%e{{[sb]}}p), %xmm8 # 16-byte Reload284; X32ABI-NEXT:    movaps {{[-0-9]+}}(%e{{[sb]}}p), %xmm9 # 16-byte Reload285; X32ABI-NEXT:    movaps {{[-0-9]+}}(%e{{[sb]}}p), %xmm10 # 16-byte Reload286; X32ABI-NEXT:    movaps {{[-0-9]+}}(%e{{[sb]}}p), %xmm11 # 16-byte Reload287; X32ABI-NEXT:    movaps {{[-0-9]+}}(%e{{[sb]}}p), %xmm12 # 16-byte Reload288; X32ABI-NEXT:    movaps {{[-0-9]+}}(%e{{[sb]}}p), %xmm13 # 16-byte Reload289; X32ABI-NEXT:    movaps {{[-0-9]+}}(%e{{[sb]}}p), %xmm14 # 16-byte Reload290; X32ABI-NEXT:    movaps {{[-0-9]+}}(%e{{[sb]}}p), %xmm15 # 16-byte Reload291; X32ABI-NEXT:    leal -8(%ebp), %esp292; X32ABI-NEXT:    popq %rbx293; X32ABI-NEXT:    popq %rbp294; X32ABI-NEXT:    .cfi_def_cfa %rsp, 8295; X32ABI-NEXT:    retq296entry:297  %k = call i32 @helper()298  %a = alloca i32, align 128299  %b = alloca i32, i32 %k, align 4300  ; clobber base pointer register301  tail call void asm sideeffect "nop", "{bx}"(i32 405)302  ; clobber argument pointer register303  tail call void asm sideeffect "nop", "~{bx},~{r10},~{r11}"()304  call void asm sideeffect "movl $0, $1", "r,*m"(i32 8, ptr elementtype(i32) %a)305  store i32 %param12, ptr %b, align 4306  ret void307}308 309; pr62625310define void @vmw_host_printf(ptr %fmt, ...) nounwind {311; CHECK-LABEL: vmw_host_printf:312; CHECK:       # %bb.0: # %entry313; CHECK-NEXT:    leaq {{[0-9]+}}(%rsp), %r10314; CHECK-NEXT:    andq $-16, %rsp315; CHECK-NEXT:    pushq -8(%r10)316; CHECK-NEXT:    pushq %rbp317; CHECK-NEXT:    movq %rsp, %rbp318; CHECK-NEXT:    pushq %rbx319; CHECK-NEXT:    subq $200, %rsp320; CHECK-NEXT:    movq %r10, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill321; CHECK-NEXT:    movq %rsi, -184(%rbp)322; CHECK-NEXT:    movq %rdx, -176(%rbp)323; CHECK-NEXT:    movq %rcx, -168(%rbp)324; CHECK-NEXT:    movq %r8, -160(%rbp)325; CHECK-NEXT:    movq %r9, -152(%rbp)326; CHECK-NEXT:    testb %al, %al327; CHECK-NEXT:    je .LBB3_2328; CHECK-NEXT:  # %bb.1: # %entry329; CHECK-NEXT:    movaps %xmm0, -144(%rbp)330; CHECK-NEXT:    movaps %xmm1, -128(%rbp)331; CHECK-NEXT:    movaps %xmm2, -112(%rbp)332; CHECK-NEXT:    movaps %xmm3, -96(%rbp)333; CHECK-NEXT:    movaps %xmm4, -80(%rbp)334; CHECK-NEXT:    movaps %xmm5, -64(%rbp)335; CHECK-NEXT:    movaps %xmm6, -48(%rbp)336; CHECK-NEXT:    movaps %xmm7, -32(%rbp)337; CHECK-NEXT:  .LBB3_2: # %entry338; CHECK-NEXT:    leaq -192(%rbp), %rax339; CHECK-NEXT:    movq %rax, (%rax)340; CHECK-NEXT:    leaq (%r10), %rax341; CHECK-NEXT:    movq %rax, (%rax)342; CHECK-NEXT:    movl $48, (%rax)343; CHECK-NEXT:    movl $8, (%rax)344; CHECK-NEXT:    xorl %eax, %eax345; CHECK-NEXT:    xorl %ebx, %ebx346; CHECK-NEXT:    xorl %ecx, %ecx347; CHECK-NEXT:    #APP348; CHECK-NEXT:    #NO_APP349; CHECK-NEXT:    movq {{[-0-9]+}}(%r{{[sb]}}p), %r10 # 8-byte Reload350; CHECK-NEXT:    leaq -8(%rbp), %rsp351; CHECK-NEXT:    popq %rbx352; CHECK-NEXT:    popq %rbp353; CHECK-NEXT:    leaq -8(%r10), %rsp354; CHECK-NEXT:    retq355;356; X32ABI-LABEL: vmw_host_printf:357; X32ABI:       # %bb.0: # %entry358; X32ABI-NEXT:    pushq %rbp359; X32ABI-NEXT:    movl %esp, %ebp360; X32ABI-NEXT:    pushq %rbx361; X32ABI-NEXT:    andl $-16, %esp362; X32ABI-NEXT:    subl $208, %esp363; X32ABI-NEXT:    movl %esp, %ebx364; X32ABI-NEXT:    movq %rsi, 24(%ebx)365; X32ABI-NEXT:    movq %rdx, 32(%ebx)366; X32ABI-NEXT:    movq %rcx, 40(%ebx)367; X32ABI-NEXT:    movq %r8, 48(%ebx)368; X32ABI-NEXT:    movq %r9, 56(%ebx)369; X32ABI-NEXT:    testb %al, %al370; X32ABI-NEXT:    je .LBB3_2371; X32ABI-NEXT:  # %bb.1: # %entry372; X32ABI-NEXT:    movaps %xmm0, 64(%ebx)373; X32ABI-NEXT:    movaps %xmm1, 80(%ebx)374; X32ABI-NEXT:    movaps %xmm2, 96(%ebx)375; X32ABI-NEXT:    movaps %xmm3, 112(%ebx)376; X32ABI-NEXT:    movaps %xmm4, 128(%ebx)377; X32ABI-NEXT:    movaps %xmm5, 144(%ebx)378; X32ABI-NEXT:    movaps %xmm6, 160(%ebx)379; X32ABI-NEXT:    movaps %xmm7, 176(%ebx)380; X32ABI-NEXT:  .LBB3_2: # %entry381; X32ABI-NEXT:    leal 16(%rbx), %eax382; X32ABI-NEXT:    movl %eax, (%eax)383; X32ABI-NEXT:    leal 16(%rbp), %eax384; X32ABI-NEXT:    movl %eax, (%eax)385; X32ABI-NEXT:    movl $48, (%eax)386; X32ABI-NEXT:    movl $8, (%eax)387; X32ABI-NEXT:    xorl %eax, %eax388; X32ABI-NEXT:    pushq %rbx389; X32ABI-NEXT:    subl $24, %esp390; X32ABI-NEXT:    xorl %ebx, %ebx391; X32ABI-NEXT:    xorl %ecx, %ecx392; X32ABI-NEXT:    #APP393; X32ABI-NEXT:    #NO_APP394; X32ABI-NEXT:    addl $24, %esp395; X32ABI-NEXT:    popq %rbx396; X32ABI-NEXT:    leal -8(%ebp), %esp397; X32ABI-NEXT:    popq %rbx398; X32ABI-NEXT:    popq %rbp399; X32ABI-NEXT:    retq400entry:401  %0 = alloca i8, i64 poison, align 8402  call void @llvm.va_start(ptr nonnull poison)403  %1 = call { i64, i64, i64, i64, i64, i64 } asm sideeffect "", "={ax},={bx},={cx},={dx},={si},={di},{ax},{bx},{cx},{dx},{si},{di},~{memory},~{dirflag},~{fpsr},~{flags}"(i32 0, i32 0, i32 0, i16 undef, i64 undef, i64 undef)404  ret void405}406 407declare void @llvm.va_start(ptr)408 409attributes #0 = {"frame-pointer"="all"}410!llvm.module.flags = !{!0}411!0 = !{i32 2, !"override-stack-alignment", i32 32}412