#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ printf(char *, ...);
int main() {
  int vector1[] = {1, 2, 3, 4, 5};
  double vector2[] = {1.1, 2.2, 3.3, 4.4, 5.5};
  float vector3[5];
  int *pvector1 = vector1;
  double *pvector2 = vector2;
  float *pvector3;
  printf("Forma 1:\n");
  printf("\tVector 1:\n\t");
  for (int i = 0; i < 5; i++) {
    printf("\t%d", *pvector1++);
  }
  printf("\n\tVector 2:\n\t");
  for (int i = 0; i < 5; i++) {
    printf("\t%f", *pvector2++);
  }
  pvector1 = vector1;
  pvector2 = vector2;
  pvector3 = vector3;
  printf("\n\nForma 3:\n");
  printf("\tVector 1 por vector 2:\n\t");
  for (int i = 0; i < 5; i++) {
    pvector3[i] = pvector1[i] * pvector2[i];
    printf("\t%f", pvector3[i]);
  }
  char cadena[11] = "Hola mundo";
  char *pcadena1, *pcadena2;
  pcadena1 = cadena;
  printf("\n\nForma 2:\n");
  printf("\tCadena \"%s\" invertida:\n\t\t", cadena);
  for (pcadena2 = &cadena[10]; pcadena1 <= &cadena[10];
       pcadena1++, pcadena2--) {
    printf("%c", *pcadena2);
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xb0,%rsp
movl   $0x0,-0x4(%rbp)
mov    0xef7(%rip),%rax
mov    %rax,-0x20(%rbp)
mov    0xef4(%rip),%rax
mov    %rax,-0x18(%rbp)
mov    0xef2(%rip),%eax
mov    %eax,-0x10(%rbp)
lea    -0x50(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1040 <memset@plt>
movsd  0xeb7(%rip),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  0xea2(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  0xe8d(%rip),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  0xe78(%rip),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0xe63(%rip),%xmm0
movsd  %xmm0,-0x30(%rbp)
lea    -0x20(%rbp),%rax
mov    %rax,-0x78(%rbp)
lea    -0x50(%rbp),%rax
mov    %rax,-0x80(%rbp)
lea    0xe8b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe87(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x8c(%rbp)
cmpl   $0x5,-0x8c(%rbp)
jge    1218 <main+0xf8>
mov    -0x78(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x78(%rbp)
mov    (%rax),%esi
lea    0xe5e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8c(%rbp)
jmp    11d8 <main+0xb8>
lea    0xe40(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x90(%rbp)
cmpl   $0x5,-0x90(%rbp)
jge    1272 <main+0x152>
mov    -0x80(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x80(%rbp)
movsd  (%rax),%xmm0
lea    0xe16(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
mov    -0x90(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x90(%rbp)
jmp    1230 <main+0x110>
lea    -0x20(%rbp),%rax
mov    %rax,-0x78(%rbp)
lea    -0x50(%rbp),%rax
mov    %rax,-0x80(%rbp)
lea    -0x70(%rbp),%rax
mov    %rax,-0x88(%rbp)
lea    0xddd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xddb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x94(%rbp)
cmpl   $0x5,-0x94(%rbp)
jge    1330 <main+0x210>
mov    -0x78(%rbp),%rax
movslq -0x94(%rbp),%rcx
cvtsi2sdl (%rax,%rcx,4),%xmm0
mov    -0x80(%rbp),%rax
movslq -0x94(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x88(%rbp),%rax
movslq -0x94(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x88(%rbp),%rax
movslq -0x94(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
lea    0xd58(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
mov    -0x94(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x94(%rbp)
jmp    12b3 <main+0x193>
mov    0xd60(%rip),%rax
mov    %rax,-0x9f(%rbp)
mov    0xd5a(%rip),%ax
mov    %ax,-0x97(%rbp)
mov    0xd4f(%rip),%al
mov    %al,-0x95(%rbp)
lea    -0x9f(%rbp),%rax
mov    %rax,-0xa8(%rbp)
lea    0xd35(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    -0x9f(%rbp),%rsi
lea    0xd2c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    -0x9f(%rbp),%rax
add    $0xa,%rax
mov    %rax,-0xb0(%rbp)
mov    -0xa8(%rbp),%rax
lea    -0x9f(%rbp),%rcx
add    $0xa,%rcx
cmp    %rcx,%rax
ja     13f7 <main+0x2d7>
mov    -0xb0(%rbp),%rax
movsbl (%rax),%esi
lea    0xd02(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xa8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0xa8(%rbp)
mov    -0xb0(%rbp),%rax
add    $0xffffffffffffffff,%rax
mov    %rax,-0xb0(%rbp)
jmp    139b <main+0x27b>
xor    %eax,%eax
add    $0xb0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %r15
push   %r14
push   %rbx
sub    $0x10,%rsp
lea    0xf73(%rip),%rdi
call   1040 <puts@plt>
lea    0xf04(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xf03(%rip),%rbx
mov    %rbx,%rdi
mov    $0x1,%esi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %rbx,%rdi
mov    $0x2,%esi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %rbx,%rdi
mov    $0x3,%esi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %rbx,%rdi
mov    $0x4,%esi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %rbx,%rdi
mov    $0x5,%esi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xeb5(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xeb5(%rip),%rbx
movsd  0xe3e(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0xe34(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0xe2a(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0xe20(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0xe16(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0xea1(%rip),%rdi
call   1040 <puts@plt>
lea    0xe4c(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movsd  0xdf2(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0xde8(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0xdde(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0xdd4(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
movsd  0xdca(%rip),%xmm0
mov    %rbx,%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    %rsp,%r15
movabs $0x6e756d20616c6f48,%rax
6d 75 6e
mov    %rax,(%rsp)
movl   $0x6f646e,0x7(%rsp)
lea    0xe1f(%rip),%rdi
call   1040 <puts@plt>
lea    0xde4(%rip),%rdi
mov    %r15,%rsi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xa(%rsp),%r14
mov    %r14,%rbx
cs nopw 0x0(%rax,%rax,1)
movsbl (%rbx),%edi
call   1030 <putchar@plt>
add    $0x1,%r15
add    $0xffffffffffffffff,%rbx
cmp    %r14,%r15
jbe    12d0 <main+0x1a0>
xor    %eax,%eax
add    $0x10,%rsp
pop    %rbx
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
@__const.main.vector1 = [5 x i32] [i32 1, i32 2, i32 3, i32 4, i32 5]
@.str = [10 x i8] c"Forma 1:\0A\00"
@.str.1 = [13 x i8] c"\09Vector 1:\0A\09\00"
@.str.2 = [4 x i8] c"\09%d\00"
@.str.3 = [14 x i8] c"\0A\09Vector 2:\0A\09\00"
@.str.4 = [4 x i8] c"\09%f\00"
@.str.5 = [12 x i8] c"\0A\0AForma 3:\0A\00"
@.str.6 = [26 x i8] c"\09Vector 1 por vector 2:\0A\09\00"
@__const.main.cadena = [11 x i8] c"Hola mundo\00"
@.str.7 = [12 x i8] c"\0A\0AForma 2:\0A\00"
@.str.8 = [27 x i8] c"\09Cadena \22%s\22 invertida:\0A\09\09\00"
@.str.9 = [3 x i8] c"%c\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [5 x i32]
%3 = alloca [5 x double]
%4 = alloca [5 x float]
%5 = alloca i32*
%6 = alloca double*
%7 = alloca float*
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca [11 x i8]
%12 = alloca i8*
%13 = alloca i8*
store i32 0, i32* %1
%14 = bitcast [5 x i32]* %2 to i8*
%15 = bitcast [5 x double]* %3 to i8*
%16 = bitcast i8* %15 to [5 x double]*
%17 = getelementptr inbounds [5 x double], [5 x double]* %16, i32 0, i32 0
store double 1.100000e+00, double* %17
%18 = getelementptr inbounds [5 x double], [5 x double]* %16, i32 0, i32 1
store double 2.200000e+00, double* %18
%19 = getelementptr inbounds [5 x double], [5 x double]* %16, i32 0, i32 2
store double 3.300000e+00, double* %19
%20 = getelementptr inbounds [5 x double], [5 x double]* %16, i32 0, i32 3
store double 4.400000e+00, double* %20
%21 = getelementptr inbounds [5 x double], [5 x double]* %16, i32 0, i32 4
store double 5.500000e+00, double* %21
%22 = getelementptr inbounds [5 x i32], [5 x i32]* %2, i64 0, i64 0
store i32* %22, i32** %5
%23 = getelementptr inbounds [5 x double], [5 x double]* %3, i64 0, i64 0
store double* %23, double** %6
%24 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0))
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0))
store i32 0, i32* %8
br label %26
26: ; preds = %34, %0
%27 = load i32, i32* %8
%28 = icmp slt i32 %27, 5
br i1 %28, label %29, label %37
29: ; preds = %26
%30 = load i32*, i32** %5
%31 = getelementptr inbounds i32, i32* %30, i32 1
store i32* %31, i32** %5
%32 = load i32, i32* %30
%33 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32 %32)
br label %34
34: ; preds = %29
%35 = load i32, i32* %8
%36 = add nsw i32 %35, 1
store i32 %36, i32* %8
br label %26
37: ; preds = %26
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.3, i64 0, i64 0))
store i32 0, i32* %9
br label %39
39: ; preds = %47, %37
%40 = load i32, i32* %9
%41 = icmp slt i32 %40, 5
br i1 %41, label %42, label %50
42: ; preds = %39
%43 = load double*, double** %6
%44 = getelementptr inbounds double, double* %43, i32 1
store double* %44, double** %6
%45 = load double, double* %43
%46 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double %45)
br label %47
47: ; preds = %42
%48 = load i32, i32* %9
%49 = add nsw i32 %48, 1
store i32 %49, i32* %9
br label %39
50: ; preds = %39
%51 = getelementptr inbounds [5 x i32], [5 x i32]* %2, i64 0, i64 0
store i32* %51, i32** %5
%52 = getelementptr inbounds [5 x double], [5 x double]* %3, i64 0, i64 0
store double* %52, double** %6
%53 = getelementptr inbounds [5 x float], [5 x float]* %4, i64 0, i64 0
store float* %53, float** %7
%54 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.5, i64 0, i64 0))
%55 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.6, i64 0, i64 0))
store i32 0, i32* %10
br label %56
56: ; preds = %84, %50
%57 = load i32, i32* %10
%58 = icmp slt i32 %57, 5
br i1 %58, label %59, label %87
59: ; preds = %56
%60 = load i32*, i32** %5
%61 = load i32, i32* %10
%62 = sext i32 %61 to i64
%63 = getelementptr inbounds i32, i32* %60, i64 %62
%64 = load i32, i32* %63
%65 = sitofp i32 %64 to double
%66 = load double*, double** %6
%67 = load i32, i32* %10
%68 = sext i32 %67 to i64
%69 = getelementptr inbounds double, double* %66, i64 %68
%70 = load double, double* %69
%71 = fmul double %65, %70
%72 = fptrunc double %71 to float
%73 = load float*, float** %7
%74 = load i32, i32* %10
%75 = sext i32 %74 to i64
%76 = getelementptr inbounds float, float* %73, i64 %75
store float %72, float* %76
%77 = load float*, float** %7
%78 = load i32, i32* %10
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds float, float* %77, i64 %79
%81 = load float, float* %80
%82 = fpext float %81 to double
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double %82)
br label %84
84: ; preds = %59
%85 = load i32, i32* %10
%86 = add nsw i32 %85, 1
store i32 %86, i32* %10
br label %56
87: ; preds = %56
%88 = bitcast [11 x i8]* %11 to i8*
%89 = getelementptr inbounds [11 x i8], [11 x i8]* %11, i64 0, i64 0
store i8* %89, i8** %12
%90 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.7, i64 0, i64 0))
%91 = getelementptr inbounds [11 x i8], [11 x i8]* %11, i64 0, i64 0
%92 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.8, i64 0, i64 0), i8* %91)
%93 = getelementptr inbounds [11 x i8], [11 x i8]* %11, i64 0, i64 10
store i8* %93, i8** %13
br label %94
94: ; preds = %103, %87
%95 = load i8*, i8** %12
%96 = getelementptr inbounds [11 x i8], [11 x i8]* %11, i64 0, i64 10
%97 = icmp ule i8* %95, %96
br i1 %97, label %98, label %108
98: ; preds = %94
%99 = load i8*, i8** %13
%100 = load i8, i8* %99
%101 = sext i8 %100 to i32
%102 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0), i32 %101)
br label %103
103: ; preds = %98
%104 = load i8*, i8** %12
%105 = getelementptr inbounds i8, i8* %104, i32 1
store i8* %105, i8** %12
%106 = load i8*, i8** %13
%107 = getelementptr inbounds i8, i8* %106, i32 -1
store i8* %107, i8** %13
br label %94
108: ; preds = %94
ret i32 0
}

LLVM IR (-O2):
@.str.1 = [13 x i8] c"\09Vector 1:\0A\09\00"
@.str.2 = [4 x i8] c"\09%d\00"
@.str.3 = [14 x i8] c"\0A\09Vector 2:\0A\09\00"
@.str.4 = [4 x i8] c"\09%f\00"
@.str.6 = [26 x i8] c"\09Vector 1 por vector 2:\0A\09\00"
@__const.main.cadena = [11 x i8] c"Hola mundo\00"
@.str.8 = [27 x i8] c"\09Cadena \22%s\22 invertida:\0A\09\09\00"
@str = [9 x i8] c"Forma 1:\00"
@str.10 = [11 x i8] c"\0A\0AForma 3:\00"
@str.11 = [11 x i8] c"\0A\0AForma 2:\00"
define i32 @main() {
%1 = alloca [11 x i8]
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @str, i64 0, i64 0))
%3 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0))
%4 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32 1)
%5 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32 2)
%6 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32 3)
%7 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32 4)
%8 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32 5)
%9 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.3, i64 0, i64 0))
%10 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double 1.100000e+00)
%11 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double 2.200000e+00)
%12 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double 3.300000e+00)
%13 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double 4.400000e+00)
%14 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double 5.500000e+00)
%15 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.10, i64 0, i64 0))
%16 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.6, i64 0, i64 0))
%17 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double 0x3FF19999A0000000)
%18 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double 0x40119999A0000000)
%19 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double 0x4023CCCCC0000000)
%20 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double 0x40319999A0000000)
%21 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), double 2.750000e+01)
%22 = getelementptr inbounds [11 x i8], [11 x i8]* %1, i64 0, i64 0
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @str.11, i64 0, i64 0))
%24 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.8, i64 0, i64 0), i8* %22)
%25 = getelementptr inbounds [11 x i8], [11 x i8]* %1, i64 0, i64 10
br label %26
26: ; preds = %0, %26
%27 = phi i8* [ %25, %0 ], [ %33, %26 ]
%28 = phi i8* [ %22, %0 ], [ %32, %26 ]
%29 = load i8, i8* %27
%30 = sext i8 %29 to i32
%31 = call i32 @putchar(i32 %30)
%32 = getelementptr inbounds i8, i8* %28, i64 1
%33 = getelementptr inbounds i8, i8* %27, i64 -1
%34 = icmp ugt i8* %32, %25
br i1 %34, label %35, label %26
35: ; preds = %26
ret i32 0
}