float sum_float26(float a1, float a2, float a3, float a4, float a5, float a6,
                  float a7, float a8, float a9, float a10, float a11, float a12,
                  float a13, float a14, float a15, float a16, float a17,
                  float a18, float a19, float a20, float a21, float a22,
                  float a23, float a24, float a25, float a26) {
  return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + a11 + a12 + a13 +
         a14 + a15 + a16 + a17 + a18 + a19 + a20 + a21 + a22 + a23 + a24 + a25 +
         a26;
}


x86 assembly (clang, -O0):
<sum_float26>:
push   %rbp
mov    %rsp,%rbp
movss  0x98(%rbp),%xmm8
movss  0x90(%rbp),%xmm8
movss  0x88(%rbp),%xmm8
movss  0x80(%rbp),%xmm8
movss  0x78(%rbp),%xmm8
movss  0x70(%rbp),%xmm8
movss  0x68(%rbp),%xmm8
movss  0x60(%rbp),%xmm8
movss  0x58(%rbp),%xmm8
movss  0x50(%rbp),%xmm8
movss  0x48(%rbp),%xmm8
movss  0x40(%rbp),%xmm8
movss  0x38(%rbp),%xmm8
movss  0x30(%rbp),%xmm8
movss  0x28(%rbp),%xmm8
movss  0x20(%rbp),%xmm8
movss  0x18(%rbp),%xmm8
movss  0x10(%rbp),%xmm8
movss  %xmm0,-0x4(%rbp)
movss  %xmm1,-0x8(%rbp)
movss  %xmm2,-0xc(%rbp)
movss  %xmm3,-0x10(%rbp)
movss  %xmm4,-0x14(%rbp)
movss  %xmm5,-0x18(%rbp)
movss  %xmm6,-0x1c(%rbp)
movss  %xmm7,-0x20(%rbp)
movss  -0x4(%rbp),%xmm0
addss  -0x8(%rbp),%xmm0
addss  -0xc(%rbp),%xmm0
addss  -0x10(%rbp),%xmm0
addss  -0x14(%rbp),%xmm0
addss  -0x18(%rbp),%xmm0
addss  -0x1c(%rbp),%xmm0
addss  -0x20(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
addss  0x18(%rbp),%xmm0
addss  0x20(%rbp),%xmm0
addss  0x28(%rbp),%xmm0
addss  0x30(%rbp),%xmm0
addss  0x38(%rbp),%xmm0
addss  0x40(%rbp),%xmm0
addss  0x48(%rbp),%xmm0
addss  0x50(%rbp),%xmm0
addss  0x58(%rbp),%xmm0
addss  0x60(%rbp),%xmm0
addss  0x68(%rbp),%xmm0
addss  0x70(%rbp),%xmm0
addss  0x78(%rbp),%xmm0
addss  0x80(%rbp),%xmm0
addss  0x88(%rbp),%xmm0
addss  0x90(%rbp),%xmm0
addss  0x98(%rbp),%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<sum_float26>:
addss  %xmm1,%xmm0
addss  %xmm2,%xmm0
addss  %xmm3,%xmm0
addss  %xmm4,%xmm0
addss  %xmm5,%xmm0
addss  %xmm6,%xmm0
addss  %xmm7,%xmm0
addss  0x8(%rsp),%xmm0
addss  0x10(%rsp),%xmm0
addss  0x18(%rsp),%xmm0
addss  0x20(%rsp),%xmm0
addss  0x28(%rsp),%xmm0
addss  0x30(%rsp),%xmm0
addss  0x38(%rsp),%xmm0
addss  0x40(%rsp),%xmm0
addss  0x48(%rsp),%xmm0
addss  0x50(%rsp),%xmm0
addss  0x58(%rsp),%xmm0
addss  0x60(%rsp),%xmm0
addss  0x68(%rsp),%xmm0
addss  0x70(%rsp),%xmm0
addss  0x78(%rsp),%xmm0
addss  0x80(%rsp),%xmm0
addss  0x88(%rsp),%xmm0
addss  0x90(%rsp),%xmm0
ret

LLVM IR (-O0):
define float @sum_float26(float %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, float %8, float %9, float %10, float %11, float %12, float %13, float %14, float %15, float %16, float %17, float %18, float %19, float %20, float %21, float %22, float %23, float %24, float %25) {
%27 = alloca float
%28 = alloca float
%29 = alloca float
%30 = alloca float
%31 = alloca float
%32 = alloca float
%33 = alloca float
%34 = alloca float
%35 = alloca float
%36 = alloca float
%37 = alloca float
%38 = alloca float
%39 = alloca float
%40 = alloca float
%41 = alloca float
%42 = alloca float
%43 = alloca float
%44 = alloca float
%45 = alloca float
%46 = alloca float
%47 = alloca float
%48 = alloca float
%49 = alloca float
%50 = alloca float
%51 = alloca float
%52 = alloca float
store float %0, float* %27
store float %1, float* %28
store float %2, float* %29
store float %3, float* %30
store float %4, float* %31
store float %5, float* %32
store float %6, float* %33
store float %7, float* %34
store float %8, float* %35
store float %9, float* %36
store float %10, float* %37
store float %11, float* %38
store float %12, float* %39
store float %13, float* %40
store float %14, float* %41
store float %15, float* %42
store float %16, float* %43
store float %17, float* %44
store float %18, float* %45
store float %19, float* %46
store float %20, float* %47
store float %21, float* %48
store float %22, float* %49
store float %23, float* %50
store float %24, float* %51
store float %25, float* %52
%53 = load float, float* %27
%54 = load float, float* %28
%55 = fadd float %53, %54
%56 = load float, float* %29
%57 = fadd float %55, %56
%58 = load float, float* %30
%59 = fadd float %57, %58
%60 = load float, float* %31
%61 = fadd float %59, %60
%62 = load float, float* %32
%63 = fadd float %61, %62
%64 = load float, float* %33
%65 = fadd float %63, %64
%66 = load float, float* %34
%67 = fadd float %65, %66
%68 = load float, float* %35
%69 = fadd float %67, %68
%70 = load float, float* %36
%71 = fadd float %69, %70
%72 = load float, float* %37
%73 = fadd float %71, %72
%74 = load float, float* %38
%75 = fadd float %73, %74
%76 = load float, float* %39
%77 = fadd float %75, %76
%78 = load float, float* %40
%79 = fadd float %77, %78
%80 = load float, float* %41
%81 = fadd float %79, %80
%82 = load float, float* %42
%83 = fadd float %81, %82
%84 = load float, float* %43
%85 = fadd float %83, %84
%86 = load float, float* %44
%87 = fadd float %85, %86
%88 = load float, float* %45
%89 = fadd float %87, %88
%90 = load float, float* %46
%91 = fadd float %89, %90
%92 = load float, float* %47
%93 = fadd float %91, %92
%94 = load float, float* %48
%95 = fadd float %93, %94
%96 = load float, float* %49
%97 = fadd float %95, %96
%98 = load float, float* %50
%99 = fadd float %97, %98
%100 = load float, float* %51
%101 = fadd float %99, %100
%102 = load float, float* %52
%103 = fadd float %101, %102
ret float %103
}

LLVM IR (-O2):
define float @sum_float26(float %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, float %8, float %9, float %10, float %11, float %12, float %13, float %14, float %15, float %16, float %17, float %18, float %19, float %20, float %21, float %22, float %23, float %24, float %25) {
%27 = fadd float %0, %1
%28 = fadd float %27, %2
%29 = fadd float %28, %3
%30 = fadd float %29, %4
%31 = fadd float %30, %5
%32 = fadd float %31, %6
%33 = fadd float %32, %7
%34 = fadd float %33, %8
%35 = fadd float %34, %9
%36 = fadd float %35, %10
%37 = fadd float %36, %11
%38 = fadd float %37, %12
%39 = fadd float %38, %13
%40 = fadd float %39, %14
%41 = fadd float %40, %15
%42 = fadd float %41, %16
%43 = fadd float %42, %17
%44 = fadd float %43, %18
%45 = fadd float %44, %19
%46 = fadd float %45, %20
%47 = fadd float %46, %21
%48 = fadd float %47, %22
%49 = fadd float %48, %23
%50 = fadd float %49, %24
%51 = fadd float %50, %25
ret float %51
}