void apply_DIRICHLET_X_END(double *V) {
  long j, index;
  for (j = 0; j < 50; j++) {
    index = (100 - 1) * 50 + j;
    V[index] = (10.0);
  }
}


x86 assembly (clang, -O0):
<apply_DIRICHLET_X_END>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
movq   $0x0,-0x10(%rbp)
cmpq   $0x32,-0x10(%rbp)
jge    114f <apply_DIRICHLET_X_END+0x4f>
mov    -0x10(%rbp),%rax
add    $0x1356,%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x18(%rbp),%rcx
movsd  0xec7(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    1110 <apply_DIRICHLET_X_END+0x10>
pop    %rbp
ret

x86 assembly (clang, -O2):
<apply_DIRICHLET_X_END>:
movaps 0xef9(%rip),%xmm0
movups %xmm0,0x9ab0(%rdi)
movups %xmm0,0x9ac0(%rdi)
movups %xmm0,0x9ad0(%rdi)
movups %xmm0,0x9ae0(%rdi)
movups %xmm0,0x9af0(%rdi)
movups %xmm0,0x9b00(%rdi)
movups %xmm0,0x9b10(%rdi)
movups %xmm0,0x9b20(%rdi)
movups %xmm0,0x9b30(%rdi)
movups %xmm0,0x9b40(%rdi)
movups %xmm0,0x9b50(%rdi)
movups %xmm0,0x9b60(%rdi)
movups %xmm0,0x9b70(%rdi)
movups %xmm0,0x9b80(%rdi)
movups %xmm0,0x9b90(%rdi)
movups %xmm0,0x9ba0(%rdi)
movups %xmm0,0x9bb0(%rdi)
movups %xmm0,0x9bc0(%rdi)
movups %xmm0,0x9bd0(%rdi)
movups %xmm0,0x9be0(%rdi)
movups %xmm0,0x9bf0(%rdi)
movups %xmm0,0x9c00(%rdi)
movups %xmm0,0x9c10(%rdi)
movups %xmm0,0x9c20(%rdi)
movups %xmm0,0x9c30(%rdi)
ret

LLVM IR (-O0):
define void @apply_DIRICHLET_X_END(double* %0) {
%2 = alloca double*
%3 = alloca i64
%4 = alloca i64
store double* %0, double** %2
store i64 0, i64* %3
br label %5
5: ; preds = %14, %1
%6 = load i64, i64* %3
%7 = icmp slt i64 %6, 50
br i1 %7, label %8, label %17
8: ; preds = %5
%9 = load i64, i64* %3
%10 = add nsw i64 4950, %9
store i64 %10, i64* %4
%11 = load double*, double** %2
%12 = load i64, i64* %4
%13 = getelementptr inbounds double, double* %11, i64 %12
store double 1.000000e+01, double* %13
br label %14
14: ; preds = %8
%15 = load i64, i64* %3
%16 = add nsw i64 %15, 1
store i64 %16, i64* %3
br label %5
17: ; preds = %5
ret void
}

LLVM IR (-O2):
define void @apply_DIRICHLET_X_END(double* nocapture writeonly %0) {
%2 = getelementptr inbounds double, double* %0, i64 4950
%3 = bitcast double* %2 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %3
%4 = getelementptr inbounds double, double* %0, i64 4952
%5 = bitcast double* %4 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %5
%6 = getelementptr inbounds double, double* %0, i64 4954
%7 = bitcast double* %6 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %7
%8 = getelementptr inbounds double, double* %0, i64 4956
%9 = bitcast double* %8 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %9
%10 = getelementptr inbounds double, double* %0, i64 4958
%11 = bitcast double* %10 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %11
%12 = getelementptr inbounds double, double* %0, i64 4960
%13 = bitcast double* %12 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %13
%14 = getelementptr inbounds double, double* %0, i64 4962
%15 = bitcast double* %14 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %15
%16 = getelementptr inbounds double, double* %0, i64 4964
%17 = bitcast double* %16 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %17
%18 = getelementptr inbounds double, double* %0, i64 4966
%19 = bitcast double* %18 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %19
%20 = getelementptr inbounds double, double* %0, i64 4968
%21 = bitcast double* %20 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %21
%22 = getelementptr inbounds double, double* %0, i64 4970
%23 = bitcast double* %22 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %23
%24 = getelementptr inbounds double, double* %0, i64 4972
%25 = bitcast double* %24 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %25
%26 = getelementptr inbounds double, double* %0, i64 4974
%27 = bitcast double* %26 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %27
%28 = getelementptr inbounds double, double* %0, i64 4976
%29 = bitcast double* %28 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %29
%30 = getelementptr inbounds double, double* %0, i64 4978
%31 = bitcast double* %30 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %31
%32 = getelementptr inbounds double, double* %0, i64 4980
%33 = bitcast double* %32 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %33
%34 = getelementptr inbounds double, double* %0, i64 4982
%35 = bitcast double* %34 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %35
%36 = getelementptr inbounds double, double* %0, i64 4984
%37 = bitcast double* %36 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %37
%38 = getelementptr inbounds double, double* %0, i64 4986
%39 = bitcast double* %38 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %39
%40 = getelementptr inbounds double, double* %0, i64 4988
%41 = bitcast double* %40 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %41
%42 = getelementptr inbounds double, double* %0, i64 4990
%43 = bitcast double* %42 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %43
%44 = getelementptr inbounds double, double* %0, i64 4992
%45 = bitcast double* %44 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %45
%46 = getelementptr inbounds double, double* %0, i64 4994
%47 = bitcast double* %46 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %47
%48 = getelementptr inbounds double, double* %0, i64 4996
%49 = bitcast double* %48 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %49
%50 = getelementptr inbounds double, double* %0, i64 4998
%51 = bitcast double* %50 to <2 x double>*
store <2 x double> <double 1.000000e+01, double 1.000000e+01>, <2 x double>* %51
ret void
}