void rescale_intensity8x8(float intensity[8][8]) {
  float min = 100000000.0;
  float max = 0.0;
  int x, y;
  for (x = 0; x < 8; x++) {
    for (y = 0; y < 8; y++) {
      if (intensity[x][y] < min) {
        min = intensity[x][y];
      }
      if (intensity[x][y] >= max) {
        max = intensity[x][y];
      }
    }
  }
  if (max <= 0.0) {
    return;
  }
  for (x = 0; x < 8; x++) {
    for (y = 0; y < 8; y++) {
      intensity[x][y] = (intensity[x][y] - min) / (max - min);
    }
  }
}


x86 assembly (clang, -O0):
<rescale_intensity8x8>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
movss  0xef0(%rip),%xmm0
movss  %xmm0,-0xc(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x10(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x8,-0x14(%rbp)
jge    11e7 <rescale_intensity8x8+0xe7>
movl   $0x0,-0x18(%rbp)
cmpl   $0x8,-0x18(%rbp)
jge    11d4 <rescale_intensity8x8+0xd4>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm1
movss  -0xc(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    1182 <rescale_intensity8x8+0x82>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xc(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
ucomiss -0x10(%rbp),%xmm0
jb     11c1 <rescale_intensity8x8+0xc1>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x10(%rbp)
jmp    11c6 <rescale_intensity8x8+0xc6>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1135 <rescale_intensity8x8+0x35>
jmp    11d9 <rescale_intensity8x8+0xd9>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1124 <rescale_intensity8x8+0x24>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     1202 <rescale_intensity8x8+0x102>
jmp    1288 <rescale_intensity8x8+0x188>
movl   $0x0,-0x14(%rbp)
cmpl   $0x8,-0x14(%rbp)
jge    1288 <rescale_intensity8x8+0x188>
movl   $0x0,-0x18(%rbp)
cmpl   $0x8,-0x18(%rbp)
jge    1275 <rescale_intensity8x8+0x175>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
subss  -0xc(%rbp),%xmm0
movss  -0x10(%rbp),%xmm1
subss  -0xc(%rbp),%xmm1
divss  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
shl    $0x5,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    121a <rescale_intensity8x8+0x11a>
jmp    127a <rescale_intensity8x8+0x17a>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1209 <rescale_intensity8x8+0x109>
pop    %rbp
ret

x86 assembly (clang, -O2):
<rescale_intensity8x8>:
movss  0xef8(%rip),%xmm1
xorps  %xmm0,%xmm0
xor    %eax,%eax
nopl   (%rax)
movss  (%rdi,%rax,1),%xmm2
movss  0x4(%rdi,%rax,1),%xmm3
movaps %xmm2,%xmm4
minss  %xmm1,%xmm4
movaps %xmm0,%xmm1
cmpless %xmm2,%xmm1
andps  %xmm1,%xmm2
andnps %xmm0,%xmm1
orps   %xmm2,%xmm1
movaps %xmm1,%xmm0
cmpless %xmm3,%xmm0
movaps %xmm0,%xmm2
andps  %xmm3,%xmm0
minss  %xmm4,%xmm3
andnps %xmm1,%xmm2
orps   %xmm2,%xmm0
movss  0x8(%rdi,%rax,1),%xmm1
movaps %xmm0,%xmm2
cmpless %xmm1,%xmm2
movaps %xmm2,%xmm4
andps  %xmm1,%xmm2
minss  %xmm3,%xmm1
andnps %xmm0,%xmm4
orps   %xmm4,%xmm2
movss  0xc(%rdi,%rax,1),%xmm0
movaps %xmm2,%xmm3
cmpless %xmm0,%xmm3
movaps %xmm3,%xmm4
andps  %xmm0,%xmm3
minss  %xmm1,%xmm0
andnps %xmm2,%xmm4
orps   %xmm4,%xmm3
movss  0x10(%rdi,%rax,1),%xmm1
movaps %xmm3,%xmm2
cmpless %xmm1,%xmm2
movaps %xmm2,%xmm4
andps  %xmm1,%xmm2
minss  %xmm0,%xmm1
andnps %xmm3,%xmm4
orps   %xmm4,%xmm2
movss  0x14(%rdi,%rax,1),%xmm0
movaps %xmm2,%xmm3
cmpless %xmm0,%xmm3
movaps %xmm3,%xmm4
andps  %xmm0,%xmm3
minss  %xmm1,%xmm0
andnps %xmm2,%xmm4
orps   %xmm4,%xmm3
movss  0x18(%rdi,%rax,1),%xmm1
movaps %xmm3,%xmm2
cmpless %xmm1,%xmm2
movaps %xmm2,%xmm4
andps  %xmm1,%xmm2
movaps %xmm1,%xmm5
minss  %xmm0,%xmm5
andnps %xmm3,%xmm4
orps   %xmm4,%xmm2
movss  0x1c(%rdi,%rax,1),%xmm1
movaps %xmm2,%xmm0
cmpless %xmm1,%xmm0
movaps %xmm0,%xmm3
andps  %xmm1,%xmm0
minss  %xmm5,%xmm1
andnps %xmm2,%xmm3
orps   %xmm3,%xmm0
add    $0x20,%rax
cmp    $0x100,%rax
jne    1110 <rescale_intensity8x8+0x10>
xorps  %xmm2,%xmm2
ucomiss %xmm0,%xmm2
jae    1452 <rescale_intensity8x8+0x352>
subss  %xmm1,%xmm0
shufps $0x0,%xmm1,%xmm1
shufps $0x0,%xmm0,%xmm0
xor    %eax,%eax
nopl   0x0(%rax)
movss  0x60(%rdi,%rax,1),%xmm2
movss  0x40(%rdi,%rax,1),%xmm3
unpcklps %xmm2,%xmm3
movss  0x20(%rdi,%rax,1),%xmm2
movss  (%rdi,%rax,1),%xmm4
unpcklps %xmm2,%xmm4
movlhps %xmm3,%xmm4
movss  0x4(%rdi,%rax,1),%xmm14
movss  0x8(%rdi,%rax,1),%xmm12
movss  0xc(%rdi,%rax,1),%xmm10
subps  %xmm1,%xmm4
divps  %xmm0,%xmm4
movaps %xmm4,%xmm2
movaps %xmm4,-0x18(%rsp)
movss  0x64(%rdi,%rax,1),%xmm3
movss  0x44(%rdi,%rax,1),%xmm4
unpcklps %xmm3,%xmm4
movss  0x24(%rdi,%rax,1),%xmm3
unpcklps %xmm3,%xmm14
movlhps %xmm4,%xmm14
subps  %xmm1,%xmm14
divps  %xmm0,%xmm14
movss  0x68(%rdi,%rax,1),%xmm3
movss  0x48(%rdi,%rax,1),%xmm4
unpcklps %xmm3,%xmm4
movss  0x28(%rdi,%rax,1),%xmm3
unpcklps %xmm3,%xmm12
movlhps %xmm4,%xmm12
subps  %xmm1,%xmm12
divps  %xmm0,%xmm12
movss  0x6c(%rdi,%rax,1),%xmm3
movss  0x4c(%rdi,%rax,1),%xmm4
unpcklps %xmm3,%xmm4
movss  0x2c(%rdi,%rax,1),%xmm3
unpcklps %xmm3,%xmm10
movlhps %xmm4,%xmm10
subps  %xmm1,%xmm10
divps  %xmm0,%xmm10
movss  0x70(%rdi,%rax,1),%xmm3
movss  0x50(%rdi,%rax,1),%xmm4
unpcklps %xmm3,%xmm4
movss  0x30(%rdi,%rax,1),%xmm3
movss  0x10(%rdi,%rax,1),%xmm11
unpcklps %xmm3,%xmm11
movlhps %xmm4,%xmm11
subps  %xmm1,%xmm11
divps  %xmm0,%xmm11
movss  0x74(%rdi,%rax,1),%xmm3
movss  0x54(%rdi,%rax,1),%xmm4
unpcklps %xmm3,%xmm4
movss  0x34(%rdi,%rax,1),%xmm3
movss  0x14(%rdi,%rax,1),%xmm7
unpcklps %xmm3,%xmm7
movlhps %xmm4,%xmm7
subps  %xmm1,%xmm7
divps  %xmm0,%xmm7
movss  0x78(%rdi,%rax,1),%xmm3
movss  0x58(%rdi,%rax,1),%xmm4
unpcklps %xmm3,%xmm4
movss  0x38(%rdi,%rax,1),%xmm5
movss  0x18(%rdi,%rax,1),%xmm3
unpcklps %xmm5,%xmm3
movlhps %xmm4,%xmm3
subps  %xmm1,%xmm3
divps  %xmm0,%xmm3
movss  0x7c(%rdi,%rax,1),%xmm5
movss  0x5c(%rdi,%rax,1),%xmm4
unpcklps %xmm5,%xmm4
movss  0x3c(%rdi,%rax,1),%xmm9
movss  0x1c(%rdi,%rax,1),%xmm5
unpcklps %xmm9,%xmm5
movlhps %xmm4,%xmm5
subps  %xmm1,%xmm5
divps  %xmm0,%xmm5
movaps %xmm10,%xmm4
movlhps %xmm12,%xmm4
movaps %xmm2,%xmm9
unpcklps %xmm14,%xmm9
shufps $0x24,%xmm4,%xmm9
movaps %xmm5,%xmm4
movlhps %xmm3,%xmm4
movaps %xmm11,%xmm8
unpcklps %xmm7,%xmm8
shufps $0x24,%xmm4,%xmm8
movaps %xmm12,%xmm4
unpcklps %xmm10,%xmm4
movaps %xmm14,%xmm13
shufps $0x11,%xmm2,%xmm13
shufps $0xe2,%xmm4,%xmm13
movaps %xmm3,%xmm4
unpcklps %xmm5,%xmm4
movaps %xmm7,%xmm15
shufps $0x11,%xmm11,%xmm15
shufps $0xe2,%xmm4,%xmm15
movaps %xmm10,%xmm4
unpckhpd %xmm12,%xmm4
unpckhps %xmm14,%xmm2
shufps $0x24,%xmm4,%xmm2
movaps %xmm5,%xmm4
unpckhpd %xmm3,%xmm4
movaps %xmm11,%xmm6
unpckhps %xmm7,%xmm6
shufps $0x24,%xmm4,%xmm6
unpckhps %xmm10,%xmm12
shufps $0x33,-0x18(%rsp),%xmm14
shufps $0xe2,%xmm12,%xmm14
unpckhps %xmm5,%xmm3
shufps $0x33,%xmm11,%xmm7
shufps $0xe2,%xmm3,%xmm7
movups %xmm7,0x70(%rdi,%rax,1)
movups %xmm14,0x60(%rdi,%rax,1)
movups %xmm6,0x50(%rdi,%rax,1)
movups %xmm2,0x40(%rdi,%rax,1)
movups %xmm15,0x30(%rdi,%rax,1)
movups %xmm13,0x20(%rdi,%rax,1)
movups %xmm8,0x10(%rdi,%rax,1)
movups %xmm9,(%rdi,%rax,1)
sub    $0xffffffffffffff80,%rax
cmp    $0x100,%rax
jne    1230 <rescale_intensity8x8+0x130>
ret

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

LLVM IR (-O2):
define void @rescale_intensity8x8([8 x float]* nocapture %0) {
br label %2
2: ; preds = %1, %2
%3 = phi i64 [ 0, %1 ], [ %54, %2 ]
%4 = phi float [ 0.000000e+00, %1 ], [ %53, %2 ]
%5 = phi float [ 1.000000e+08, %1 ], [ %51, %2 ]
%6 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %3, i64 0
%7 = load float, float* %6
%8 = fcmp olt float %7, %5
%9 = select i1 %8, float %7, float %5
%10 = fcmp oge float %7, %4
%11 = select i1 %10, float %7, float %4
%12 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %3, i64 1
%13 = load float, float* %12
%14 = fcmp olt float %13, %9
%15 = select i1 %14, float %13, float %9
%16 = fcmp oge float %13, %11
%17 = select i1 %16, float %13, float %11
%18 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %3, i64 2
%19 = load float, float* %18
%20 = fcmp olt float %19, %15
%21 = select i1 %20, float %19, float %15
%22 = fcmp oge float %19, %17
%23 = select i1 %22, float %19, float %17
%24 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %3, i64 3
%25 = load float, float* %24
%26 = fcmp olt float %25, %21
%27 = select i1 %26, float %25, float %21
%28 = fcmp oge float %25, %23
%29 = select i1 %28, float %25, float %23
%30 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %3, i64 4
%31 = load float, float* %30
%32 = fcmp olt float %31, %27
%33 = select i1 %32, float %31, float %27
%34 = fcmp oge float %31, %29
%35 = select i1 %34, float %31, float %29
%36 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %3, i64 5
%37 = load float, float* %36
%38 = fcmp olt float %37, %33
%39 = select i1 %38, float %37, float %33
%40 = fcmp oge float %37, %35
%41 = select i1 %40, float %37, float %35
%42 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %3, i64 6
%43 = load float, float* %42
%44 = fcmp olt float %43, %39
%45 = select i1 %44, float %43, float %39
%46 = fcmp oge float %43, %41
%47 = select i1 %46, float %43, float %41
%48 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %3, i64 7
%49 = load float, float* %48
%50 = fcmp olt float %49, %45
%51 = select i1 %50, float %49, float %45
%52 = fcmp oge float %49, %47
%53 = select i1 %52, float %49, float %47
%54 = add nuw nsw i64 %3, 1
%55 = icmp eq i64 %54, 8
br i1 %55, label %56, label %2
56: ; preds = %2
%57 = fcmp ugt float %53, 0.000000e+00
br i1 %57, label %58, label %192
58: ; preds = %56
%59 = fsub float %53, %51
%60 = insertelement <4 x float> poison, float %51, i64 0
%61 = shufflevector <4 x float> %60, <4 x float> poison, <4 x i32> zeroinitializer
%62 = insertelement <4 x float> poison, float %59, i64 0
%63 = shufflevector <4 x float> %62, <4 x float> poison, <4 x i32> zeroinitializer
br label %64
64: ; preds = %64, %58
%65 = phi i64 [ 0, %58 ], [ %190, %64 ]
%66 = or i64 %65, 1
%67 = or i64 %65, 2
%68 = or i64 %65, 3
%69 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %65, i64 0
%70 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %66, i64 0
%71 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %67, i64 0
%72 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %68, i64 0
%73 = load float, float* %69
%74 = load float, float* %70
%75 = load float, float* %71
%76 = load float, float* %72
%77 = insertelement <4 x float> poison, float %73, i64 0
%78 = insertelement <4 x float> %77, float %74, i64 1
%79 = insertelement <4 x float> %78, float %75, i64 2
%80 = insertelement <4 x float> %79, float %76, i64 3
%81 = fsub <4 x float> %80, %61
%82 = fdiv <4 x float> %81, %63
%83 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %65, i64 1
%84 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %66, i64 1
%85 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %67, i64 1
%86 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %68, i64 1
%87 = load float, float* %83
%88 = load float, float* %84
%89 = load float, float* %85
%90 = load float, float* %86
%91 = insertelement <4 x float> poison, float %87, i64 0
%92 = insertelement <4 x float> %91, float %88, i64 1
%93 = insertelement <4 x float> %92, float %89, i64 2
%94 = insertelement <4 x float> %93, float %90, i64 3
%95 = fsub <4 x float> %94, %61
%96 = fdiv <4 x float> %95, %63
%97 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %65, i64 2
%98 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %66, i64 2
%99 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %67, i64 2
%100 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %68, i64 2
%101 = load float, float* %97
%102 = load float, float* %98
%103 = load float, float* %99
%104 = load float, float* %100
%105 = insertelement <4 x float> poison, float %101, i64 0
%106 = insertelement <4 x float> %105, float %102, i64 1
%107 = insertelement <4 x float> %106, float %103, i64 2
%108 = insertelement <4 x float> %107, float %104, i64 3
%109 = fsub <4 x float> %108, %61
%110 = fdiv <4 x float> %109, %63
%111 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %65, i64 3
%112 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %66, i64 3
%113 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %67, i64 3
%114 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %68, i64 3
%115 = load float, float* %111
%116 = load float, float* %112
%117 = load float, float* %113
%118 = load float, float* %114
%119 = insertelement <4 x float> poison, float %115, i64 0
%120 = insertelement <4 x float> %119, float %116, i64 1
%121 = insertelement <4 x float> %120, float %117, i64 2
%122 = insertelement <4 x float> %121, float %118, i64 3
%123 = fsub <4 x float> %122, %61
%124 = fdiv <4 x float> %123, %63
%125 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %65, i64 4
%126 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %66, i64 4
%127 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %67, i64 4
%128 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %68, i64 4
%129 = load float, float* %125
%130 = load float, float* %126
%131 = load float, float* %127
%132 = load float, float* %128
%133 = insertelement <4 x float> poison, float %129, i64 0
%134 = insertelement <4 x float> %133, float %130, i64 1
%135 = insertelement <4 x float> %134, float %131, i64 2
%136 = insertelement <4 x float> %135, float %132, i64 3
%137 = fsub <4 x float> %136, %61
%138 = fdiv <4 x float> %137, %63
%139 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %65, i64 5
%140 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %66, i64 5
%141 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %67, i64 5
%142 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %68, i64 5
%143 = load float, float* %139
%144 = load float, float* %140
%145 = load float, float* %141
%146 = load float, float* %142
%147 = insertelement <4 x float> poison, float %143, i64 0
%148 = insertelement <4 x float> %147, float %144, i64 1
%149 = insertelement <4 x float> %148, float %145, i64 2
%150 = insertelement <4 x float> %149, float %146, i64 3
%151 = fsub <4 x float> %150, %61
%152 = fdiv <4 x float> %151, %63
%153 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %65, i64 6
%154 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %66, i64 6
%155 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %67, i64 6
%156 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %68, i64 6
%157 = load float, float* %153
%158 = load float, float* %154
%159 = load float, float* %155
%160 = load float, float* %156
%161 = insertelement <4 x float> poison, float %157, i64 0
%162 = insertelement <4 x float> %161, float %158, i64 1
%163 = insertelement <4 x float> %162, float %159, i64 2
%164 = insertelement <4 x float> %163, float %160, i64 3
%165 = fsub <4 x float> %164, %61
%166 = fdiv <4 x float> %165, %63
%167 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %65, i64 7
%168 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %66, i64 7
%169 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %67, i64 7
%170 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %68, i64 7
%171 = load float, float* %167
%172 = load float, float* %168
%173 = load float, float* %169
%174 = load float, float* %170
%175 = insertelement <4 x float> poison, float %171, i64 0
%176 = insertelement <4 x float> %175, float %172, i64 1
%177 = insertelement <4 x float> %176, float %173, i64 2
%178 = insertelement <4 x float> %177, float %174, i64 3
%179 = fsub <4 x float> %178, %61
%180 = fdiv <4 x float> %179, %63
%181 = getelementptr inbounds [8 x float], [8 x float]* %0, i64 %65, i64 0
%182 = bitcast float* %181 to <32 x float>*
%183 = shufflevector <4 x float> %82, <4 x float> %96, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
%184 = shufflevector <4 x float> %110, <4 x float> %124, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
%185 = shufflevector <4 x float> %138, <4 x float> %152, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
%186 = shufflevector <4 x float> %166, <4 x float> %180, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
%187 = shufflevector <8 x float> %183, <8 x float> %184, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
%188 = shufflevector <8 x float> %185, <8 x float> %186, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
%189 = shufflevector <16 x float> %187, <16 x float> %188, <32 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28, i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 29, i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30, i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27, i32 31>
store <32 x float> %189, <32 x float>* %182
%190 = add nuw i64 %65, 4
%191 = icmp eq i64 %190, 8
br i1 %191, label %192, label %64
192: ; preds = %64, %56
ret void
}