int check_cycle_complete_function(char *condition) {
  if ((condition[0] == 'S' && condition[1] == 'T' && condition[2] == 'O' &&
       condition[3] == 'P' && condition[4] == 'P' && condition[5] == 'E' &&
       condition[6] == 'D' && condition[7] == '_' && condition[8] == 'W' &&
       condition[9] == 'H' && condition[10] == 'I' && condition[11] == 'L' &&
       condition[12] == 'E' && condition[13] == '_' && condition[14] == 'C' &&
       condition[15] == 'L' && condition[16] == 'O' && condition[17] == 'S' &&
       condition[18] == 'I' && condition[19] == 'N' && condition[20] == 'G') ||
      (condition[0] == 'S' && condition[1] == 'T' && condition[2] == 'O' &&
       condition[3] == 'P' && condition[4] == 'P' && condition[5] == 'E' &&
       condition[6] == 'D' && condition[7] == '_' && condition[8] == 'W' &&
       condition[9] == 'H' && condition[10] == 'I' && condition[11] == 'L' &&
       condition[12] == 'E' && condition[13] == '_' && condition[14] == 'O' &&
       condition[15] == 'P' && condition[16] == 'E' && condition[17] == 'N' &&
       condition[18] == 'I' && condition[19] == 'N' && condition[20] == 'G') ||
      (condition[0] == 'O' && condition[1] == 'P' && condition[2] == 'E' &&
       condition[3] == 'N' && condition[4] == 'E' && condition[5] == 'D') ||
      (condition[0] == 'C' && condition[1] == 'L' && condition[2] == 'O' &&
       condition[3] == 'S' && condition[4] == 'E' && condition[5] == 'D')) {
    return -1;
  }
  return 0;
}


x86 assembly (clang, -O0):
<check_cycle_complete_function>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x53,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x54,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x4f,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x3(%rax),%eax
cmp    $0x50,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x4(%rax),%eax
cmp    $0x50,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x5(%rax),%eax
cmp    $0x45,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x6(%rax),%eax
cmp    $0x44,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x7(%rax),%eax
cmp    $0x5f,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x8(%rax),%eax
cmp    $0x57,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x9(%rax),%eax
cmp    $0x48,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0xa(%rax),%eax
cmp    $0x49,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0xb(%rax),%eax
cmp    $0x4c,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0xc(%rax),%eax
cmp    $0x45,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0xd(%rax),%eax
cmp    $0x5f,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0xe(%rax),%eax
cmp    $0x43,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0xf(%rax),%eax
cmp    $0x4c,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x10(%rax),%eax
cmp    $0x4f,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x11(%rax),%eax
cmp    $0x53,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x12(%rax),%eax
cmp    $0x49,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x13(%rax),%eax
cmp    $0x4e,%eax
jne    126c <check_cycle_complete_function+0x16c>
mov    -0x10(%rbp),%rax
movsbl 0x14(%rax),%eax
cmp    $0x47,%eax
je     149a <check_cycle_complete_function+0x39a>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x53,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x54,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x4f,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x3(%rax),%eax
cmp    $0x50,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x4(%rax),%eax
cmp    $0x50,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x5(%rax),%eax
cmp    $0x45,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x6(%rax),%eax
cmp    $0x44,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x7(%rax),%eax
cmp    $0x5f,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x8(%rax),%eax
cmp    $0x57,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x9(%rax),%eax
cmp    $0x48,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0xa(%rax),%eax
cmp    $0x49,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0xb(%rax),%eax
cmp    $0x4c,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0xc(%rax),%eax
cmp    $0x45,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0xd(%rax),%eax
cmp    $0x5f,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0xe(%rax),%eax
cmp    $0x4f,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0xf(%rax),%eax
cmp    $0x50,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x10(%rax),%eax
cmp    $0x45,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x11(%rax),%eax
cmp    $0x4e,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x12(%rax),%eax
cmp    $0x49,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x13(%rax),%eax
cmp    $0x4e,%eax
jne    13d0 <check_cycle_complete_function+0x2d0>
mov    -0x10(%rbp),%rax
movsbl 0x14(%rax),%eax
cmp    $0x47,%eax
je     149a <check_cycle_complete_function+0x39a>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x4f,%eax
jne    1435 <check_cycle_complete_function+0x335>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x50,%eax
jne    1435 <check_cycle_complete_function+0x335>
mov    -0x10(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x45,%eax
jne    1435 <check_cycle_complete_function+0x335>
mov    -0x10(%rbp),%rax
movsbl 0x3(%rax),%eax
cmp    $0x4e,%eax
jne    1435 <check_cycle_complete_function+0x335>
mov    -0x10(%rbp),%rax
movsbl 0x4(%rax),%eax
cmp    $0x45,%eax
jne    1435 <check_cycle_complete_function+0x335>
mov    -0x10(%rbp),%rax
movsbl 0x5(%rax),%eax
cmp    $0x44,%eax
je     149a <check_cycle_complete_function+0x39a>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x43,%eax
jne    14a6 <check_cycle_complete_function+0x3a6>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x4c,%eax
jne    14a6 <check_cycle_complete_function+0x3a6>
mov    -0x10(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x4f,%eax
jne    14a6 <check_cycle_complete_function+0x3a6>
mov    -0x10(%rbp),%rax
movsbl 0x3(%rax),%eax
cmp    $0x53,%eax
jne    14a6 <check_cycle_complete_function+0x3a6>
mov    -0x10(%rbp),%rax
movsbl 0x4(%rax),%eax
cmp    $0x45,%eax
jne    14a6 <check_cycle_complete_function+0x3a6>
mov    -0x10(%rbp),%rax
movsbl 0x5(%rax),%eax
cmp    $0x44,%eax
jne    14a6 <check_cycle_complete_function+0x3a6>
movl   $0xffffffff,-0x4(%rbp)
jmp    14ad <check_cycle_complete_function+0x3ad>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<check_cycle_complete_function>:
mov    (%rdi),%al
cmp    $0x43,%al
je     1238 <check_cycle_complete_function+0x138>
cmp    $0x4f,%al
je     124c <check_cycle_complete_function+0x14c>
cmp    $0x53,%al
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x54,0x1(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x4f,0x2(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x50,0x3(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x50,0x4(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x45,0x5(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x44,0x6(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x5f,0x7(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x57,0x8(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x48,0x9(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x49,0xa(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x4c,0xb(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x45,0xc(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x5f,0xd(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x43,0xe(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x4c,0xf(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x4f,0x10(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x53,0x11(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x49,0x12(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
cmpb   $0x4e,0x13(%rdi)
jne    119f <check_cycle_complete_function+0x9f>
mov    $0xffffffff,%eax
cmpb   $0x47,0x14(%rdi)
je     1271 <check_cycle_complete_function+0x171>
cmpb   $0x4f,0x2(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x50,0x3(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x50,0x4(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x45,0x5(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x44,0x6(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x5f,0x7(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x57,0x8(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x48,0x9(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x49,0xa(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x4c,0xb(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x45,0xc(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x5f,0xd(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x4f,0xe(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x50,0xf(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x45,0x10(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x4e,0x11(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x49,0x12(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x4e,0x13(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
mov    $0xffffffff,%eax
cmpb   $0x47,0x14(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
jmp    1271 <check_cycle_complete_function+0x171>
cmpb   $0x4c,0x1(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x4f,0x2(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x53,0x3(%rdi)
je     125e <check_cycle_complete_function+0x15e>
jmp    126f <check_cycle_complete_function+0x16f>
cmpb   $0x50,0x1(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x45,0x2(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x4e,0x3(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
cmpb   $0x45,0x4(%rdi)
jne    126f <check_cycle_complete_function+0x16f>
mov    $0xffffffff,%eax
cmpb   $0x44,0x5(%rdi)
je     1271 <check_cycle_complete_function+0x171>
xor    %eax,%eax
ret

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

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