float ffi_test_31_point_5(float x0, float x1, float x2, float x3, float x4,
                          float x5, float x6, float x7, float x8, float x9,
                          float x10, float x11, float x12, float x13, float x14,
                          float x15, float x16, float x17, float x18, float x19,
                          float x20, float x21, float x22, float x23, float x24,
                          float x25, float x26, float x27, float x28, float x29,
                          float x30, float x31, float x32, float x33, float x34,
                          float x35, float x36, float x37, float x38, float x39,
                          float x40, float x41) {
  return x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 + x12 +
         x13 + x14 + x15 + x16 + x17 + x18 + x19 + x20 + x21 + x22 + x23 + x24 +
         x25 + x26 + x27 + x28 + x29 + x30 + x31 + x32 + x33 + x34 + x35 + x36 +
         x37 + x38 + x39 + x40 + x41;
}


x86 assembly (clang, -O0):
<ffi_test_31_point_5>:
push   %rbp
mov    %rsp,%rbp
movss  0x118(%rbp),%xmm8
movss  0x110(%rbp),%xmm8
movss  0x108(%rbp),%xmm8
movss  0x100(%rbp),%xmm8
movss  0xf8(%rbp),%xmm8
movss  0xf0(%rbp),%xmm8
movss  0xe8(%rbp),%xmm8
movss  0xe0(%rbp),%xmm8
movss  0xd8(%rbp),%xmm8
movss  0xd0(%rbp),%xmm8
movss  0xc8(%rbp),%xmm8
movss  0xc0(%rbp),%xmm8
movss  0xb8(%rbp),%xmm8
movss  0xb0(%rbp),%xmm8
movss  0xa8(%rbp),%xmm8
movss  0xa0(%rbp),%xmm8
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
addss  0xa0(%rbp),%xmm0
addss  0xa8(%rbp),%xmm0
addss  0xb0(%rbp),%xmm0
addss  0xb8(%rbp),%xmm0
addss  0xc0(%rbp),%xmm0
addss  0xc8(%rbp),%xmm0
addss  0xd0(%rbp),%xmm0
addss  0xd8(%rbp),%xmm0
addss  0xe0(%rbp),%xmm0
addss  0xe8(%rbp),%xmm0
addss  0xf0(%rbp),%xmm0
addss  0xf8(%rbp),%xmm0
addss  0x100(%rbp),%xmm0
addss  0x108(%rbp),%xmm0
addss  0x110(%rbp),%xmm0
addss  0x118(%rbp),%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<ffi_test_31_point_5>:
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
addss  0x98(%rsp),%xmm0
addss  0xa0(%rsp),%xmm0
addss  0xa8(%rsp),%xmm0
addss  0xb0(%rsp),%xmm0
addss  0xb8(%rsp),%xmm0
addss  0xc0(%rsp),%xmm0
addss  0xc8(%rsp),%xmm0
addss  0xd0(%rsp),%xmm0
addss  0xd8(%rsp),%xmm0
addss  0xe0(%rsp),%xmm0
addss  0xe8(%rsp),%xmm0
addss  0xf0(%rsp),%xmm0
addss  0xf8(%rsp),%xmm0
addss  0x100(%rsp),%xmm0
addss  0x108(%rsp),%xmm0
addss  0x110(%rsp),%xmm0
ret

LLVM IR (-O0):
define float @ffi_test_31_point_5(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, float %26, float %27, float %28, float %29, float %30, float %31, float %32, float %33, float %34, float %35, float %36, float %37, float %38, float %39, float %40, float %41) {
%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
%53 = alloca float
%54 = alloca float
%55 = alloca float
%56 = alloca float
%57 = alloca float
%58 = alloca float
%59 = alloca float
%60 = alloca float
%61 = alloca float
%62 = alloca float
%63 = alloca float
%64 = alloca float
%65 = alloca float
%66 = alloca float
%67 = alloca float
%68 = alloca float
%69 = alloca float
%70 = alloca float
%71 = alloca float
%72 = alloca float
%73 = alloca float
%74 = alloca float
%75 = alloca float
%76 = alloca float
%77 = alloca float
%78 = alloca float
%79 = alloca float
%80 = alloca float
%81 = alloca float
%82 = alloca float
%83 = alloca float
%84 = alloca float
store float %0, float* %43
store float %1, float* %44
store float %2, float* %45
store float %3, float* %46
store float %4, float* %47
store float %5, float* %48
store float %6, float* %49
store float %7, float* %50
store float %8, float* %51
store float %9, float* %52
store float %10, float* %53
store float %11, float* %54
store float %12, float* %55
store float %13, float* %56
store float %14, float* %57
store float %15, float* %58
store float %16, float* %59
store float %17, float* %60
store float %18, float* %61
store float %19, float* %62
store float %20, float* %63
store float %21, float* %64
store float %22, float* %65
store float %23, float* %66
store float %24, float* %67
store float %25, float* %68
store float %26, float* %69
store float %27, float* %70
store float %28, float* %71
store float %29, float* %72
store float %30, float* %73
store float %31, float* %74
store float %32, float* %75
store float %33, float* %76
store float %34, float* %77
store float %35, float* %78
store float %36, float* %79
store float %37, float* %80
store float %38, float* %81
store float %39, float* %82
store float %40, float* %83
store float %41, float* %84
%85 = load float, float* %43
%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
%104 = load float, float* %53
%105 = fadd float %103, %104
%106 = load float, float* %54
%107 = fadd float %105, %106
%108 = load float, float* %55
%109 = fadd float %107, %108
%110 = load float, float* %56
%111 = fadd float %109, %110
%112 = load float, float* %57
%113 = fadd float %111, %112
%114 = load float, float* %58
%115 = fadd float %113, %114
%116 = load float, float* %59
%117 = fadd float %115, %116
%118 = load float, float* %60
%119 = fadd float %117, %118
%120 = load float, float* %61
%121 = fadd float %119, %120
%122 = load float, float* %62
%123 = fadd float %121, %122
%124 = load float, float* %63
%125 = fadd float %123, %124
%126 = load float, float* %64
%127 = fadd float %125, %126
%128 = load float, float* %65
%129 = fadd float %127, %128
%130 = load float, float* %66
%131 = fadd float %129, %130
%132 = load float, float* %67
%133 = fadd float %131, %132
%134 = load float, float* %68
%135 = fadd float %133, %134
%136 = load float, float* %69
%137 = fadd float %135, %136
%138 = load float, float* %70
%139 = fadd float %137, %138
%140 = load float, float* %71
%141 = fadd float %139, %140
%142 = load float, float* %72
%143 = fadd float %141, %142
%144 = load float, float* %73
%145 = fadd float %143, %144
%146 = load float, float* %74
%147 = fadd float %145, %146
%148 = load float, float* %75
%149 = fadd float %147, %148
%150 = load float, float* %76
%151 = fadd float %149, %150
%152 = load float, float* %77
%153 = fadd float %151, %152
%154 = load float, float* %78
%155 = fadd float %153, %154
%156 = load float, float* %79
%157 = fadd float %155, %156
%158 = load float, float* %80
%159 = fadd float %157, %158
%160 = load float, float* %81
%161 = fadd float %159, %160
%162 = load float, float* %82
%163 = fadd float %161, %162
%164 = load float, float* %83
%165 = fadd float %163, %164
%166 = load float, float* %84
%167 = fadd float %165, %166
ret float %167
}

LLVM IR (-O2):
define float @ffi_test_31_point_5(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, float %26, float %27, float %28, float %29, float %30, float %31, float %32, float %33, float %34, float %35, float %36, float %37, float %38, float %39, float %40, float %41) {
%43 = fadd float %0, %1
%44 = fadd float %43, %2
%45 = fadd float %44, %3
%46 = fadd float %45, %4
%47 = fadd float %46, %5
%48 = fadd float %47, %6
%49 = fadd float %48, %7
%50 = fadd float %49, %8
%51 = fadd float %50, %9
%52 = fadd float %51, %10
%53 = fadd float %52, %11
%54 = fadd float %53, %12
%55 = fadd float %54, %13
%56 = fadd float %55, %14
%57 = fadd float %56, %15
%58 = fadd float %57, %16
%59 = fadd float %58, %17
%60 = fadd float %59, %18
%61 = fadd float %60, %19
%62 = fadd float %61, %20
%63 = fadd float %62, %21
%64 = fadd float %63, %22
%65 = fadd float %64, %23
%66 = fadd float %65, %24
%67 = fadd float %66, %25
%68 = fadd float %67, %26
%69 = fadd float %68, %27
%70 = fadd float %69, %28
%71 = fadd float %70, %29
%72 = fadd float %71, %30
%73 = fadd float %72, %31
%74 = fadd float %73, %32
%75 = fadd float %74, %33
%76 = fadd float %75, %34
%77 = fadd float %76, %35
%78 = fadd float %77, %36
%79 = fadd float %78, %37
%80 = fadd float %79, %38
%81 = fadd float %80, %39
%82 = fadd float %81, %40
%83 = fadd float %82, %41
ret float %83
}