49 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=x86_64 < %s | FileCheck %s3 4; Check the prolog won't be sunk across the save of CSRs.5define void @reduce(i32, i32, i32, i32, i32, i32, ...) nounwind {6; CHECK-LABEL: reduce:7; CHECK: # %bb.0:8; CHECK-NEXT: subq $56, %rsp9; CHECK-NEXT: testb %al, %al10; CHECK-NEXT: jne .LBB0_311; CHECK-NEXT: # %bb.4:12; CHECK-NEXT: testb %al, %al13; CHECK-NEXT: je .LBB0_114; CHECK-NEXT: .LBB0_2:15; CHECK-NEXT: addq $56, %rsp16; CHECK-NEXT: retq17; CHECK-NEXT: .LBB0_3:18; CHECK-NEXT: movaps %xmm0, -{{[0-9]+}}(%rsp)19; CHECK-NEXT: movaps %xmm1, -{{[0-9]+}}(%rsp)20; CHECK-NEXT: movaps %xmm2, -{{[0-9]+}}(%rsp)21; CHECK-NEXT: movaps %xmm3, -{{[0-9]+}}(%rsp)22; CHECK-NEXT: movaps %xmm4, -{{[0-9]+}}(%rsp)23; CHECK-NEXT: movaps %xmm5, (%rsp)24; CHECK-NEXT: movaps %xmm6, {{[0-9]+}}(%rsp)25; CHECK-NEXT: movaps %xmm7, {{[0-9]+}}(%rsp)26; CHECK-NEXT: testb %al, %al27; CHECK-NEXT: jne .LBB0_228; CHECK-NEXT: .LBB0_1:29; CHECK-NEXT: leaq -{{[0-9]+}}(%rsp), %rax30; CHECK-NEXT: movq %rax, 1631; CHECK-NEXT: leaq {{[0-9]+}}(%rsp), %rax32; CHECK-NEXT: movq %rax, 833; CHECK-NEXT: movl $48, 434; CHECK-NEXT: movl $48, 035; CHECK-NEXT: addq $56, %rsp36; CHECK-NEXT: retq37 br i1 poison, label %8, label %738 397: ; preds = %640 call void @llvm.va_start(ptr null)41 br label %842 438: ; preds = %7, %644 ret void45}46 47declare void @llvm.va_start(ptr)48declare void @llvm.va_end(ptr)49