void ATV(double atvx[15], double atvy[15], double atvz[15], double tvx[5],
         double tvy[5], double tvz[5]) {
  atvx[0] = 0;
  atvy[0] = 0;
  atvz[0] = 0;
  atvx[1] = tvx[1];
  atvy[1] = tvy[1];
  atvz[1] = tvz[1];
  atvx[2] = tvx[2];
  atvy[2] = tvy[2];
  atvz[2] = tvz[2];
  atvx[3] = tvx[3];
  atvy[3] = tvy[3];
  atvz[3] = tvz[3];
  atvx[4] = tvx[1] + tvx[3];
  atvy[4] = tvy[1] + tvy[3];
  atvz[4] = tvz[1] + tvz[3];
  atvx[5] = tvx[1] - tvx[3];
  atvy[5] = tvy[1] - tvy[3];
  atvz[5] = tvz[1] - tvz[3];
  atvx[6] = tvx[1] + tvx[2];
  atvy[6] = tvy[1] + tvy[2];
  atvz[6] = tvz[1] + tvz[2];
  atvx[7] = tvx[1] - tvx[2];
  atvy[7] = tvy[1] - tvy[2];
  atvz[7] = tvz[1] - tvz[2];
  atvx[8] = tvx[2] + tvx[3];
  atvy[8] = tvy[2] + tvy[3];
  atvz[8] = tvz[2] + tvz[3];
  atvx[9] = tvx[2] - tvx[3];
  atvy[9] = tvy[2] - tvy[3];
  atvz[9] = tvz[2] - tvz[3];
  atvx[10] = tvx[1] + tvx[2] + tvx[3];
  atvy[10] = tvy[1] + tvy[2] + tvy[3];
  atvz[10] = tvz[1] + tvz[2] + tvz[3];
  atvx[11] = -tvx[1] + tvx[2] + tvx[3];
  atvy[11] = -tvy[1] + tvy[2] + tvy[3];
  atvz[11] = -tvz[1] + tvz[2] + tvz[3];
  atvx[12] = tvx[1] - tvx[2] + tvx[3];
  atvy[12] = tvy[1] - tvy[2] + tvy[3];
  atvz[12] = tvz[1] - tvz[2] + tvz[3];
  atvx[13] = tvx[1] + tvx[2] - tvx[3];
  atvy[13] = tvy[1] + tvy[2] - tvy[3];
  atvz[13] = tvz[1] + tvz[2] - tvz[3];
}


x86 assembly (clang, -O0):
<ATV>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x20(%rbp),%rax
movsd  0x18(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x28(%rbp),%rax
movsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x30(%rbp),%rax
movsd  0x18(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x28(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x18(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x28(%rax)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x28(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  0x18(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x28(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
addsd  0x10(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x30(%rax)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x28(%rbp),%rax
addsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x30(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
addsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x30(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x40(%rax)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x28(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x40(%rax)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x40(%rax)
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x18(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x48(%rax)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x48(%rax)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  0x18(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x48(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
addsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x50(%rax)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x28(%rbp),%rax
addsd  0x10(%rax),%xmm0
mov    -0x28(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x50(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
addsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x50(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x20(%rbp),%rax
addsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x58(%rax)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x28(%rbp),%rax
addsd  0x10(%rax),%xmm0
mov    -0x28(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x58(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x30(%rbp),%rax
addsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x58(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x60(%rax)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  0x10(%rax),%xmm0
mov    -0x28(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x60(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
addsd  0x18(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x60(%rax)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
addsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x18(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x68(%rax)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x28(%rbp),%rax
addsd  0x10(%rax),%xmm0
mov    -0x28(%rbp),%rax
subsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,0x68(%rax)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
addsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
subsd  0x18(%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x68(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<ATV>:
movq   $0x0,(%rdi)
movq   $0x0,(%rsi)
movq   $0x0,(%rdx)
movsd  0x8(%rcx),%xmm0
movsd  %xmm0,0x8(%rdi)
movsd  0x8(%r8),%xmm0
movsd  %xmm0,0x8(%rsi)
movsd  0x8(%r9),%xmm0
movsd  %xmm0,0x8(%rdx)
movsd  0x10(%rcx),%xmm0
movsd  %xmm0,0x10(%rdi)
movsd  0x10(%r8),%xmm0
movsd  %xmm0,0x10(%rsi)
movsd  0x10(%r9),%xmm0
movsd  %xmm0,0x10(%rdx)
movsd  0x18(%rcx),%xmm0
movsd  %xmm0,0x18(%rdi)
movsd  0x18(%r8),%xmm0
movsd  %xmm0,0x18(%rsi)
movsd  0x18(%r9),%xmm0
movsd  %xmm0,0x18(%rdx)
movsd  0x8(%rcx),%xmm0
addsd  0x18(%rcx),%xmm0
movsd  %xmm0,0x20(%rdi)
movsd  0x8(%r8),%xmm0
addsd  0x18(%r8),%xmm0
movsd  %xmm0,0x20(%rsi)
movsd  0x8(%r9),%xmm0
addsd  0x18(%r9),%xmm0
movsd  %xmm0,0x20(%rdx)
movsd  0x8(%rcx),%xmm0
subsd  0x18(%rcx),%xmm0
movsd  %xmm0,0x28(%rdi)
movsd  0x8(%r8),%xmm0
subsd  0x18(%r8),%xmm0
movsd  %xmm0,0x28(%rsi)
movsd  0x8(%r9),%xmm0
subsd  0x18(%r9),%xmm0
movsd  %xmm0,0x28(%rdx)
movsd  0x8(%rcx),%xmm0
addsd  0x10(%rcx),%xmm0
movsd  %xmm0,0x30(%rdi)
movsd  0x8(%r8),%xmm0
addsd  0x10(%r8),%xmm0
movsd  %xmm0,0x30(%rsi)
movsd  0x8(%r9),%xmm0
addsd  0x10(%r9),%xmm0
movsd  %xmm0,0x30(%rdx)
movsd  0x8(%rcx),%xmm0
subsd  0x10(%rcx),%xmm0
movsd  %xmm0,0x38(%rdi)
movsd  0x8(%r8),%xmm0
subsd  0x10(%r8),%xmm0
movsd  %xmm0,0x38(%rsi)
movsd  0x8(%r9),%xmm0
subsd  0x10(%r9),%xmm0
movsd  %xmm0,0x38(%rdx)
movsd  0x10(%rcx),%xmm0
addsd  0x18(%rcx),%xmm0
movsd  %xmm0,0x40(%rdi)
movsd  0x10(%r8),%xmm0
addsd  0x18(%r8),%xmm0
movsd  %xmm0,0x40(%rsi)
movsd  0x10(%r9),%xmm0
addsd  0x18(%r9),%xmm0
movsd  %xmm0,0x40(%rdx)
movsd  0x10(%rcx),%xmm0
subsd  0x18(%rcx),%xmm0
movsd  %xmm0,0x48(%rdi)
movsd  0x10(%r8),%xmm0
subsd  0x18(%r8),%xmm0
movsd  %xmm0,0x48(%rsi)
movsd  0x10(%r9),%xmm0
subsd  0x18(%r9),%xmm0
movsd  %xmm0,0x48(%rdx)
movsd  0x8(%rcx),%xmm0
addsd  0x10(%rcx),%xmm0
addsd  0x18(%rcx),%xmm0
movsd  %xmm0,0x50(%rdi)
movsd  0x8(%r8),%xmm0
addsd  0x10(%r8),%xmm0
addsd  0x18(%r8),%xmm0
movsd  %xmm0,0x50(%rsi)
movsd  0x8(%r9),%xmm0
addsd  0x10(%r9),%xmm0
addsd  0x18(%r9),%xmm0
movsd  %xmm0,0x50(%rdx)
movsd  0x10(%rcx),%xmm0
subsd  0x8(%rcx),%xmm0
addsd  0x18(%rcx),%xmm0
movsd  %xmm0,0x58(%rdi)
movsd  0x10(%r8),%xmm0
subsd  0x8(%r8),%xmm0
addsd  0x18(%r8),%xmm0
movsd  %xmm0,0x58(%rsi)
movsd  0x10(%r9),%xmm0
subsd  0x8(%r9),%xmm0
addsd  0x18(%r9),%xmm0
movsd  %xmm0,0x58(%rdx)
movsd  0x8(%rcx),%xmm0
subsd  0x10(%rcx),%xmm0
addsd  0x18(%rcx),%xmm0
movsd  %xmm0,0x60(%rdi)
movsd  0x8(%r8),%xmm0
subsd  0x10(%r8),%xmm0
addsd  0x18(%r8),%xmm0
movsd  %xmm0,0x60(%rsi)
movsd  0x8(%r9),%xmm0
subsd  0x10(%r9),%xmm0
addsd  0x18(%r9),%xmm0
movsd  %xmm0,0x60(%rdx)
movsd  0x8(%rcx),%xmm0
addsd  0x10(%rcx),%xmm0
subsd  0x18(%rcx),%xmm0
movsd  %xmm0,0x68(%rdi)
movsd  0x8(%r8),%xmm0
addsd  0x10(%r8),%xmm0
subsd  0x18(%r8),%xmm0
movsd  %xmm0,0x68(%rsi)
movsd  0x8(%r9),%xmm0
addsd  0x10(%r9),%xmm0
subsd  0x18(%r9),%xmm0
movsd  %xmm0,0x68(%rdx)
ret

LLVM IR (-O0):
define void @ATV(double* %0, double* %1, double* %2, double* %3, double* %4, double* %5) {
%7 = alloca double*
%8 = alloca double*
%9 = alloca double*
%10 = alloca double*
%11 = alloca double*
%12 = alloca double*
store double* %0, double** %7
store double* %1, double** %8
store double* %2, double** %9
store double* %3, double** %10
store double* %4, double** %11
store double* %5, double** %12
%13 = load double*, double** %7
%14 = getelementptr inbounds double, double* %13, i64 0
store double 0.000000e+00, double* %14
%15 = load double*, double** %8
%16 = getelementptr inbounds double, double* %15, i64 0
store double 0.000000e+00, double* %16
%17 = load double*, double** %9
%18 = getelementptr inbounds double, double* %17, i64 0
store double 0.000000e+00, double* %18
%19 = load double*, double** %10
%20 = getelementptr inbounds double, double* %19, i64 1
%21 = load double, double* %20
%22 = load double*, double** %7
%23 = getelementptr inbounds double, double* %22, i64 1
store double %21, double* %23
%24 = load double*, double** %11
%25 = getelementptr inbounds double, double* %24, i64 1
%26 = load double, double* %25
%27 = load double*, double** %8
%28 = getelementptr inbounds double, double* %27, i64 1
store double %26, double* %28
%29 = load double*, double** %12
%30 = getelementptr inbounds double, double* %29, i64 1
%31 = load double, double* %30
%32 = load double*, double** %9
%33 = getelementptr inbounds double, double* %32, i64 1
store double %31, double* %33
%34 = load double*, double** %10
%35 = getelementptr inbounds double, double* %34, i64 2
%36 = load double, double* %35
%37 = load double*, double** %7
%38 = getelementptr inbounds double, double* %37, i64 2
store double %36, double* %38
%39 = load double*, double** %11
%40 = getelementptr inbounds double, double* %39, i64 2
%41 = load double, double* %40
%42 = load double*, double** %8
%43 = getelementptr inbounds double, double* %42, i64 2
store double %41, double* %43
%44 = load double*, double** %12
%45 = getelementptr inbounds double, double* %44, i64 2
%46 = load double, double* %45
%47 = load double*, double** %9
%48 = getelementptr inbounds double, double* %47, i64 2
store double %46, double* %48
%49 = load double*, double** %10
%50 = getelementptr inbounds double, double* %49, i64 3
%51 = load double, double* %50
%52 = load double*, double** %7
%53 = getelementptr inbounds double, double* %52, i64 3
store double %51, double* %53
%54 = load double*, double** %11
%55 = getelementptr inbounds double, double* %54, i64 3
%56 = load double, double* %55
%57 = load double*, double** %8
%58 = getelementptr inbounds double, double* %57, i64 3
store double %56, double* %58
%59 = load double*, double** %12
%60 = getelementptr inbounds double, double* %59, i64 3
%61 = load double, double* %60
%62 = load double*, double** %9
%63 = getelementptr inbounds double, double* %62, i64 3
store double %61, double* %63
%64 = load double*, double** %10
%65 = getelementptr inbounds double, double* %64, i64 1
%66 = load double, double* %65
%67 = load double*, double** %10
%68 = getelementptr inbounds double, double* %67, i64 3
%69 = load double, double* %68
%70 = fadd double %66, %69
%71 = load double*, double** %7
%72 = getelementptr inbounds double, double* %71, i64 4
store double %70, double* %72
%73 = load double*, double** %11
%74 = getelementptr inbounds double, double* %73, i64 1
%75 = load double, double* %74
%76 = load double*, double** %11
%77 = getelementptr inbounds double, double* %76, i64 3
%78 = load double, double* %77
%79 = fadd double %75, %78
%80 = load double*, double** %8
%81 = getelementptr inbounds double, double* %80, i64 4
store double %79, double* %81
%82 = load double*, double** %12
%83 = getelementptr inbounds double, double* %82, i64 1
%84 = load double, double* %83
%85 = load double*, double** %12
%86 = getelementptr inbounds double, double* %85, i64 3
%87 = load double, double* %86
%88 = fadd double %84, %87
%89 = load double*, double** %9
%90 = getelementptr inbounds double, double* %89, i64 4
store double %88, double* %90
%91 = load double*, double** %10
%92 = getelementptr inbounds double, double* %91, i64 1
%93 = load double, double* %92
%94 = load double*, double** %10
%95 = getelementptr inbounds double, double* %94, i64 3
%96 = load double, double* %95
%97 = fsub double %93, %96
%98 = load double*, double** %7
%99 = getelementptr inbounds double, double* %98, i64 5
store double %97, double* %99
%100 = load double*, double** %11
%101 = getelementptr inbounds double, double* %100, i64 1
%102 = load double, double* %101
%103 = load double*, double** %11
%104 = getelementptr inbounds double, double* %103, i64 3
%105 = load double, double* %104
%106 = fsub double %102, %105
%107 = load double*, double** %8
%108 = getelementptr inbounds double, double* %107, i64 5
store double %106, double* %108
%109 = load double*, double** %12
%110 = getelementptr inbounds double, double* %109, i64 1
%111 = load double, double* %110
%112 = load double*, double** %12
%113 = getelementptr inbounds double, double* %112, i64 3
%114 = load double, double* %113
%115 = fsub double %111, %114
%116 = load double*, double** %9
%117 = getelementptr inbounds double, double* %116, i64 5
store double %115, double* %117
%118 = load double*, double** %10
%119 = getelementptr inbounds double, double* %118, i64 1
%120 = load double, double* %119
%121 = load double*, double** %10
%122 = getelementptr inbounds double, double* %121, i64 2
%123 = load double, double* %122
%124 = fadd double %120, %123
%125 = load double*, double** %7
%126 = getelementptr inbounds double, double* %125, i64 6
store double %124, double* %126
%127 = load double*, double** %11
%128 = getelementptr inbounds double, double* %127, i64 1
%129 = load double, double* %128
%130 = load double*, double** %11
%131 = getelementptr inbounds double, double* %130, i64 2
%132 = load double, double* %131
%133 = fadd double %129, %132
%134 = load double*, double** %8
%135 = getelementptr inbounds double, double* %134, i64 6
store double %133, double* %135
%136 = load double*, double** %12
%137 = getelementptr inbounds double, double* %136, i64 1
%138 = load double, double* %137
%139 = load double*, double** %12
%140 = getelementptr inbounds double, double* %139, i64 2
%141 = load double, double* %140
%142 = fadd double %138, %141
%143 = load double*, double** %9
%144 = getelementptr inbounds double, double* %143, i64 6
store double %142, double* %144
%145 = load double*, double** %10
%146 = getelementptr inbounds double, double* %145, i64 1
%147 = load double, double* %146
%148 = load double*, double** %10
%149 = getelementptr inbounds double, double* %148, i64 2
%150 = load double, double* %149
%151 = fsub double %147, %150
%152 = load double*, double** %7
%153 = getelementptr inbounds double, double* %152, i64 7
store double %151, double* %153
%154 = load double*, double** %11
%155 = getelementptr inbounds double, double* %154, i64 1
%156 = load double, double* %155
%157 = load double*, double** %11
%158 = getelementptr inbounds double, double* %157, i64 2
%159 = load double, double* %158
%160 = fsub double %156, %159
%161 = load double*, double** %8
%162 = getelementptr inbounds double, double* %161, i64 7
store double %160, double* %162
%163 = load double*, double** %12
%164 = getelementptr inbounds double, double* %163, i64 1
%165 = load double, double* %164
%166 = load double*, double** %12
%167 = getelementptr inbounds double, double* %166, i64 2
%168 = load double, double* %167
%169 = fsub double %165, %168
%170 = load double*, double** %9
%171 = getelementptr inbounds double, double* %170, i64 7
store double %169, double* %171
%172 = load double*, double** %10
%173 = getelementptr inbounds double, double* %172, i64 2
%174 = load double, double* %173
%175 = load double*, double** %10
%176 = getelementptr inbounds double, double* %175, i64 3
%177 = load double, double* %176
%178 = fadd double %174, %177
%179 = load double*, double** %7
%180 = getelementptr inbounds double, double* %179, i64 8
store double %178, double* %180
%181 = load double*, double** %11
%182 = getelementptr inbounds double, double* %181, i64 2
%183 = load double, double* %182
%184 = load double*, double** %11
%185 = getelementptr inbounds double, double* %184, i64 3
%186 = load double, double* %185
%187 = fadd double %183, %186
%188 = load double*, double** %8
%189 = getelementptr inbounds double, double* %188, i64 8
store double %187, double* %189
%190 = load double*, double** %12
%191 = getelementptr inbounds double, double* %190, i64 2
%192 = load double, double* %191
%193 = load double*, double** %12
%194 = getelementptr inbounds double, double* %193, i64 3
%195 = load double, double* %194
%196 = fadd double %192, %195
%197 = load double*, double** %9
%198 = getelementptr inbounds double, double* %197, i64 8
store double %196, double* %198
%199 = load double*, double** %10
%200 = getelementptr inbounds double, double* %199, i64 2
%201 = load double, double* %200
%202 = load double*, double** %10
%203 = getelementptr inbounds double, double* %202, i64 3
%204 = load double, double* %203
%205 = fsub double %201, %204
%206 = load double*, double** %7
%207 = getelementptr inbounds double, double* %206, i64 9
store double %205, double* %207
%208 = load double*, double** %11
%209 = getelementptr inbounds double, double* %208, i64 2
%210 = load double, double* %209
%211 = load double*, double** %11
%212 = getelementptr inbounds double, double* %211, i64 3
%213 = load double, double* %212
%214 = fsub double %210, %213
%215 = load double*, double** %8
%216 = getelementptr inbounds double, double* %215, i64 9
store double %214, double* %216
%217 = load double*, double** %12
%218 = getelementptr inbounds double, double* %217, i64 2
%219 = load double, double* %218
%220 = load double*, double** %12
%221 = getelementptr inbounds double, double* %220, i64 3
%222 = load double, double* %221
%223 = fsub double %219, %222
%224 = load double*, double** %9
%225 = getelementptr inbounds double, double* %224, i64 9
store double %223, double* %225
%226 = load double*, double** %10
%227 = getelementptr inbounds double, double* %226, i64 1
%228 = load double, double* %227
%229 = load double*, double** %10
%230 = getelementptr inbounds double, double* %229, i64 2
%231 = load double, double* %230
%232 = fadd double %228, %231
%233 = load double*, double** %10
%234 = getelementptr inbounds double, double* %233, i64 3
%235 = load double, double* %234
%236 = fadd double %232, %235
%237 = load double*, double** %7
%238 = getelementptr inbounds double, double* %237, i64 10
store double %236, double* %238
%239 = load double*, double** %11
%240 = getelementptr inbounds double, double* %239, i64 1
%241 = load double, double* %240
%242 = load double*, double** %11
%243 = getelementptr inbounds double, double* %242, i64 2
%244 = load double, double* %243
%245 = fadd double %241, %244
%246 = load double*, double** %11
%247 = getelementptr inbounds double, double* %246, i64 3
%248 = load double, double* %247
%249 = fadd double %245, %248
%250 = load double*, double** %8
%251 = getelementptr inbounds double, double* %250, i64 10
store double %249, double* %251
%252 = load double*, double** %12
%253 = getelementptr inbounds double, double* %252, i64 1
%254 = load double, double* %253
%255 = load double*, double** %12
%256 = getelementptr inbounds double, double* %255, i64 2
%257 = load double, double* %256
%258 = fadd double %254, %257
%259 = load double*, double** %12
%260 = getelementptr inbounds double, double* %259, i64 3
%261 = load double, double* %260
%262 = fadd double %258, %261
%263 = load double*, double** %9
%264 = getelementptr inbounds double, double* %263, i64 10
store double %262, double* %264
%265 = load double*, double** %10
%266 = getelementptr inbounds double, double* %265, i64 1
%267 = load double, double* %266
%268 = fneg double %267
%269 = load double*, double** %10
%270 = getelementptr inbounds double, double* %269, i64 2
%271 = load double, double* %270
%272 = fadd double %268, %271
%273 = load double*, double** %10
%274 = getelementptr inbounds double, double* %273, i64 3
%275 = load double, double* %274
%276 = fadd double %272, %275
%277 = load double*, double** %7
%278 = getelementptr inbounds double, double* %277, i64 11
store double %276, double* %278
%279 = load double*, double** %11
%280 = getelementptr inbounds double, double* %279, i64 1
%281 = load double, double* %280
%282 = fneg double %281
%283 = load double*, double** %11
%284 = getelementptr inbounds double, double* %283, i64 2
%285 = load double, double* %284
%286 = fadd double %282, %285
%287 = load double*, double** %11
%288 = getelementptr inbounds double, double* %287, i64 3
%289 = load double, double* %288
%290 = fadd double %286, %289
%291 = load double*, double** %8
%292 = getelementptr inbounds double, double* %291, i64 11
store double %290, double* %292
%293 = load double*, double** %12
%294 = getelementptr inbounds double, double* %293, i64 1
%295 = load double, double* %294
%296 = fneg double %295
%297 = load double*, double** %12
%298 = getelementptr inbounds double, double* %297, i64 2
%299 = load double, double* %298
%300 = fadd double %296, %299
%301 = load double*, double** %12
%302 = getelementptr inbounds double, double* %301, i64 3
%303 = load double, double* %302
%304 = fadd double %300, %303
%305 = load double*, double** %9
%306 = getelementptr inbounds double, double* %305, i64 11
store double %304, double* %306
%307 = load double*, double** %10
%308 = getelementptr inbounds double, double* %307, i64 1
%309 = load double, double* %308
%310 = load double*, double** %10
%311 = getelementptr inbounds double, double* %310, i64 2
%312 = load double, double* %311
%313 = fsub double %309, %312
%314 = load double*, double** %10
%315 = getelementptr inbounds double, double* %314, i64 3
%316 = load double, double* %315
%317 = fadd double %313, %316
%318 = load double*, double** %7
%319 = getelementptr inbounds double, double* %318, i64 12
store double %317, double* %319
%320 = load double*, double** %11
%321 = getelementptr inbounds double, double* %320, i64 1
%322 = load double, double* %321
%323 = load double*, double** %11
%324 = getelementptr inbounds double, double* %323, i64 2
%325 = load double, double* %324
%326 = fsub double %322, %325
%327 = load double*, double** %11
%328 = getelementptr inbounds double, double* %327, i64 3
%329 = load double, double* %328
%330 = fadd double %326, %329
%331 = load double*, double** %8
%332 = getelementptr inbounds double, double* %331, i64 12
store double %330, double* %332
%333 = load double*, double** %12
%334 = getelementptr inbounds double, double* %333, i64 1
%335 = load double, double* %334
%336 = load double*, double** %12
%337 = getelementptr inbounds double, double* %336, i64 2
%338 = load double, double* %337
%339 = fsub double %335, %338
%340 = load double*, double** %12
%341 = getelementptr inbounds double, double* %340, i64 3
%342 = load double, double* %341
%343 = fadd double %339, %342
%344 = load double*, double** %9
%345 = getelementptr inbounds double, double* %344, i64 12
store double %343, double* %345
%346 = load double*, double** %10
%347 = getelementptr inbounds double, double* %346, i64 1
%348 = load double, double* %347
%349 = load double*, double** %10
%350 = getelementptr inbounds double, double* %349, i64 2
%351 = load double, double* %350
%352 = fadd double %348, %351
%353 = load double*, double** %10
%354 = getelementptr inbounds double, double* %353, i64 3
%355 = load double, double* %354
%356 = fsub double %352, %355
%357 = load double*, double** %7
%358 = getelementptr inbounds double, double* %357, i64 13
store double %356, double* %358
%359 = load double*, double** %11
%360 = getelementptr inbounds double, double* %359, i64 1
%361 = load double, double* %360
%362 = load double*, double** %11
%363 = getelementptr inbounds double, double* %362, i64 2
%364 = load double, double* %363
%365 = fadd double %361, %364
%366 = load double*, double** %11
%367 = getelementptr inbounds double, double* %366, i64 3
%368 = load double, double* %367
%369 = fsub double %365, %368
%370 = load double*, double** %8
%371 = getelementptr inbounds double, double* %370, i64 13
store double %369, double* %371
%372 = load double*, double** %12
%373 = getelementptr inbounds double, double* %372, i64 1
%374 = load double, double* %373
%375 = load double*, double** %12
%376 = getelementptr inbounds double, double* %375, i64 2
%377 = load double, double* %376
%378 = fadd double %374, %377
%379 = load double*, double** %12
%380 = getelementptr inbounds double, double* %379, i64 3
%381 = load double, double* %380
%382 = fsub double %378, %381
%383 = load double*, double** %9
%384 = getelementptr inbounds double, double* %383, i64 13
store double %382, double* %384
ret void
}

LLVM IR (-O2):
define void @ATV(double* nocapture writeonly %0, double* nocapture writeonly %1, double* nocapture writeonly %2, double* nocapture %3, double* nocapture %4, double* nocapture %5) {
store double 0.000000e+00, double* %0
store double 0.000000e+00, double* %1
store double 0.000000e+00, double* %2
%7 = getelementptr inbounds double, double* %3, i64 1
%8 = load double, double* %7
%9 = getelementptr inbounds double, double* %0, i64 1
store double %8, double* %9
%10 = getelementptr inbounds double, double* %4, i64 1
%11 = load double, double* %10
%12 = getelementptr inbounds double, double* %1, i64 1
store double %11, double* %12
%13 = getelementptr inbounds double, double* %5, i64 1
%14 = load double, double* %13
%15 = getelementptr inbounds double, double* %2, i64 1
store double %14, double* %15
%16 = getelementptr inbounds double, double* %3, i64 2
%17 = load double, double* %16
%18 = getelementptr inbounds double, double* %0, i64 2
store double %17, double* %18
%19 = getelementptr inbounds double, double* %4, i64 2
%20 = load double, double* %19
%21 = getelementptr inbounds double, double* %1, i64 2
store double %20, double* %21
%22 = getelementptr inbounds double, double* %5, i64 2
%23 = load double, double* %22
%24 = getelementptr inbounds double, double* %2, i64 2
store double %23, double* %24
%25 = getelementptr inbounds double, double* %3, i64 3
%26 = load double, double* %25
%27 = getelementptr inbounds double, double* %0, i64 3
store double %26, double* %27
%28 = getelementptr inbounds double, double* %4, i64 3
%29 = load double, double* %28
%30 = getelementptr inbounds double, double* %1, i64 3
store double %29, double* %30
%31 = getelementptr inbounds double, double* %5, i64 3
%32 = load double, double* %31
%33 = getelementptr inbounds double, double* %2, i64 3
store double %32, double* %33
%34 = load double, double* %7
%35 = load double, double* %25
%36 = fadd double %34, %35
%37 = getelementptr inbounds double, double* %0, i64 4
store double %36, double* %37
%38 = load double, double* %10
%39 = load double, double* %28
%40 = fadd double %38, %39
%41 = getelementptr inbounds double, double* %1, i64 4
store double %40, double* %41
%42 = load double, double* %13
%43 = load double, double* %31
%44 = fadd double %42, %43
%45 = getelementptr inbounds double, double* %2, i64 4
store double %44, double* %45
%46 = load double, double* %7
%47 = load double, double* %25
%48 = fsub double %46, %47
%49 = getelementptr inbounds double, double* %0, i64 5
store double %48, double* %49
%50 = load double, double* %10
%51 = load double, double* %28
%52 = fsub double %50, %51
%53 = getelementptr inbounds double, double* %1, i64 5
store double %52, double* %53
%54 = load double, double* %13
%55 = load double, double* %31
%56 = fsub double %54, %55
%57 = getelementptr inbounds double, double* %2, i64 5
store double %56, double* %57
%58 = load double, double* %7
%59 = load double, double* %16
%60 = fadd double %58, %59
%61 = getelementptr inbounds double, double* %0, i64 6
store double %60, double* %61
%62 = load double, double* %10
%63 = load double, double* %19
%64 = fadd double %62, %63
%65 = getelementptr inbounds double, double* %1, i64 6
store double %64, double* %65
%66 = load double, double* %13
%67 = load double, double* %22
%68 = fadd double %66, %67
%69 = getelementptr inbounds double, double* %2, i64 6
store double %68, double* %69
%70 = load double, double* %7
%71 = load double, double* %16
%72 = fsub double %70, %71
%73 = getelementptr inbounds double, double* %0, i64 7
store double %72, double* %73
%74 = load double, double* %10
%75 = load double, double* %19
%76 = fsub double %74, %75
%77 = getelementptr inbounds double, double* %1, i64 7
store double %76, double* %77
%78 = load double, double* %13
%79 = load double, double* %22
%80 = fsub double %78, %79
%81 = getelementptr inbounds double, double* %2, i64 7
store double %80, double* %81
%82 = load double, double* %16
%83 = load double, double* %25
%84 = fadd double %82, %83
%85 = getelementptr inbounds double, double* %0, i64 8
store double %84, double* %85
%86 = load double, double* %19
%87 = load double, double* %28
%88 = fadd double %86, %87
%89 = getelementptr inbounds double, double* %1, i64 8
store double %88, double* %89
%90 = load double, double* %22
%91 = load double, double* %31
%92 = fadd double %90, %91
%93 = getelementptr inbounds double, double* %2, i64 8
store double %92, double* %93
%94 = load double, double* %16
%95 = load double, double* %25
%96 = fsub double %94, %95
%97 = getelementptr inbounds double, double* %0, i64 9
store double %96, double* %97
%98 = load double, double* %19
%99 = load double, double* %28
%100 = fsub double %98, %99
%101 = getelementptr inbounds double, double* %1, i64 9
store double %100, double* %101
%102 = load double, double* %22
%103 = load double, double* %31
%104 = fsub double %102, %103
%105 = getelementptr inbounds double, double* %2, i64 9
store double %104, double* %105
%106 = load double, double* %7
%107 = load double, double* %16
%108 = fadd double %106, %107
%109 = load double, double* %25
%110 = fadd double %108, %109
%111 = getelementptr inbounds double, double* %0, i64 10
store double %110, double* %111
%112 = load double, double* %10
%113 = load double, double* %19
%114 = fadd double %112, %113
%115 = load double, double* %28
%116 = fadd double %114, %115
%117 = getelementptr inbounds double, double* %1, i64 10
store double %116, double* %117
%118 = load double, double* %13
%119 = load double, double* %22
%120 = fadd double %118, %119
%121 = load double, double* %31
%122 = fadd double %120, %121
%123 = getelementptr inbounds double, double* %2, i64 10
store double %122, double* %123
%124 = load double, double* %7
%125 = load double, double* %16
%126 = fsub double %125, %124
%127 = load double, double* %25
%128 = fadd double %126, %127
%129 = getelementptr inbounds double, double* %0, i64 11
store double %128, double* %129
%130 = load double, double* %10
%131 = load double, double* %19
%132 = fsub double %131, %130
%133 = load double, double* %28
%134 = fadd double %132, %133
%135 = getelementptr inbounds double, double* %1, i64 11
store double %134, double* %135
%136 = load double, double* %13
%137 = load double, double* %22
%138 = fsub double %137, %136
%139 = load double, double* %31
%140 = fadd double %138, %139
%141 = getelementptr inbounds double, double* %2, i64 11
store double %140, double* %141
%142 = load double, double* %7
%143 = load double, double* %16
%144 = fsub double %142, %143
%145 = load double, double* %25
%146 = fadd double %144, %145
%147 = getelementptr inbounds double, double* %0, i64 12
store double %146, double* %147
%148 = load double, double* %10
%149 = load double, double* %19
%150 = fsub double %148, %149
%151 = load double, double* %28
%152 = fadd double %150, %151
%153 = getelementptr inbounds double, double* %1, i64 12
store double %152, double* %153
%154 = load double, double* %13
%155 = load double, double* %22
%156 = fsub double %154, %155
%157 = load double, double* %31
%158 = fadd double %156, %157
%159 = getelementptr inbounds double, double* %2, i64 12
store double %158, double* %159
%160 = load double, double* %7
%161 = load double, double* %16
%162 = fadd double %160, %161
%163 = load double, double* %25
%164 = fsub double %162, %163
%165 = getelementptr inbounds double, double* %0, i64 13
store double %164, double* %165
%166 = load double, double* %10
%167 = load double, double* %19
%168 = fadd double %166, %167
%169 = load double, double* %28
%170 = fsub double %168, %169
%171 = getelementptr inbounds double, double* %1, i64 13
store double %170, double* %171
%172 = load double, double* %13
%173 = load double, double* %22
%174 = fadd double %172, %173
%175 = load double, double* %31
%176 = fsub double %174, %175
%177 = getelementptr inbounds double, double* %2, i64 13
store double %176, double* %177
ret void
}