void bwexp10(float alpha, float *pc, float *pcexp) {
  float temp = 1.0f;
  pcexp[0] = pc[0];
  temp *= alpha;
  pcexp[1] = pc[1] * temp;
  temp *= alpha;
  pcexp[2] = pc[2] * temp;
  temp *= alpha;
  pcexp[3] = pc[3] * temp;
  temp *= alpha;
  pcexp[4] = pc[4] * temp;
  temp *= alpha;
  pcexp[5] = pc[5] * temp;
  temp *= alpha;
  pcexp[6] = pc[6] * temp;
  temp *= alpha;
  pcexp[7] = pc[7] * temp;
  temp *= alpha;
  pcexp[8] = pc[8] * temp;
  temp *= alpha;
  pcexp[9] = pc[9] * temp;
}


x86 assembly (clang, -O0):
<bwexp10>:
push   %rbp
mov    %rsp,%rbp
movss  %xmm0,-0x4(%rbp)
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
movss  0xee7(%rip),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,(%rax)
movss  -0x4(%rbp),%xmm0
mulss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x4(%rax),%xmm0
mulss  -0x1c(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,0x4(%rax)
movss  -0x4(%rbp),%xmm0
mulss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x8(%rax),%xmm0
mulss  -0x1c(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,0x8(%rax)
movss  -0x4(%rbp),%xmm0
mulss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
movss  0xc(%rax),%xmm0
mulss  -0x1c(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,0xc(%rax)
movss  -0x4(%rbp),%xmm0
mulss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x10(%rax),%xmm0
mulss  -0x1c(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,0x10(%rax)
movss  -0x4(%rbp),%xmm0
mulss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x14(%rax),%xmm0
mulss  -0x1c(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,0x14(%rax)
movss  -0x4(%rbp),%xmm0
mulss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x18(%rax),%xmm0
mulss  -0x1c(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,0x18(%rax)
movss  -0x4(%rbp),%xmm0
mulss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x1c(%rax),%xmm0
mulss  -0x1c(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,0x1c(%rax)
movss  -0x4(%rbp),%xmm0
mulss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x20(%rax),%xmm0
mulss  -0x1c(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,0x20(%rax)
movss  -0x4(%rbp),%xmm0
mulss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
movss  0x24(%rax),%xmm0
mulss  -0x1c(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movss  %xmm0,0x24(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<bwexp10>:
movss  (%rdi),%xmm1
movss  %xmm1,(%rsi)
movss  0x4(%rdi),%xmm1
mulss  %xmm0,%xmm1
movss  %xmm1,0x4(%rsi)
movaps %xmm0,%xmm1
mulss  %xmm0,%xmm1
movss  0x8(%rdi),%xmm2
mulss  %xmm1,%xmm2
movss  %xmm2,0x8(%rsi)
mulss  %xmm0,%xmm1
movss  0xc(%rdi),%xmm2
mulss  %xmm1,%xmm2
movss  %xmm2,0xc(%rsi)
mulss  %xmm0,%xmm1
movss  0x10(%rdi),%xmm2
mulss  %xmm1,%xmm2
movss  %xmm2,0x10(%rsi)
mulss  %xmm0,%xmm1
movss  0x14(%rdi),%xmm2
mulss  %xmm1,%xmm2
movss  %xmm2,0x14(%rsi)
mulss  %xmm0,%xmm1
movss  0x18(%rdi),%xmm2
mulss  %xmm1,%xmm2
movss  %xmm2,0x18(%rsi)
mulss  %xmm0,%xmm1
movss  0x1c(%rdi),%xmm2
mulss  %xmm1,%xmm2
movss  %xmm2,0x1c(%rsi)
mulss  %xmm0,%xmm1
movss  0x20(%rdi),%xmm2
mulss  %xmm1,%xmm2
movss  %xmm2,0x20(%rsi)
mulss  %xmm0,%xmm1
mulss  0x24(%rdi),%xmm1
movss  %xmm1,0x24(%rsi)
ret

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

LLVM IR (-O2):
define void @bwexp10(float %0, float* nocapture %1, float* nocapture writeonly %2) {
%4 = load float, float* %1
store float %4, float* %2
%5 = getelementptr inbounds float, float* %1, i64 1
%6 = load float, float* %5
%7 = fmul float %6, %0
%8 = getelementptr inbounds float, float* %2, i64 1
store float %7, float* %8
%9 = fmul float %0, %0
%10 = getelementptr inbounds float, float* %1, i64 2
%11 = load float, float* %10
%12 = fmul float %9, %11
%13 = getelementptr inbounds float, float* %2, i64 2
store float %12, float* %13
%14 = fmul float %9, %0
%15 = getelementptr inbounds float, float* %1, i64 3
%16 = load float, float* %15
%17 = fmul float %14, %16
%18 = getelementptr inbounds float, float* %2, i64 3
store float %17, float* %18
%19 = fmul float %14, %0
%20 = getelementptr inbounds float, float* %1, i64 4
%21 = load float, float* %20
%22 = fmul float %19, %21
%23 = getelementptr inbounds float, float* %2, i64 4
store float %22, float* %23
%24 = fmul float %19, %0
%25 = getelementptr inbounds float, float* %1, i64 5
%26 = load float, float* %25
%27 = fmul float %24, %26
%28 = getelementptr inbounds float, float* %2, i64 5
store float %27, float* %28
%29 = fmul float %24, %0
%30 = getelementptr inbounds float, float* %1, i64 6
%31 = load float, float* %30
%32 = fmul float %29, %31
%33 = getelementptr inbounds float, float* %2, i64 6
store float %32, float* %33
%34 = fmul float %29, %0
%35 = getelementptr inbounds float, float* %1, i64 7
%36 = load float, float* %35
%37 = fmul float %34, %36
%38 = getelementptr inbounds float, float* %2, i64 7
store float %37, float* %38
%39 = fmul float %34, %0
%40 = getelementptr inbounds float, float* %1, i64 8
%41 = load float, float* %40
%42 = fmul float %39, %41
%43 = getelementptr inbounds float, float* %2, i64 8
store float %42, float* %43
%44 = fmul float %39, %0
%45 = getelementptr inbounds float, float* %1, i64 9
%46 = load float, float* %45
%47 = fmul float %44, %46
%48 = getelementptr inbounds float, float* %2, i64 9
store float %47, float* %48
ret void
}