diff --git a/src/parser.ll b/src/parser.ll new file mode 100644 index 0000000..ef7e30f --- /dev/null +++ b/src/parser.ll @@ -0,0 +1,3320 @@ +; ModuleID = 'parser.c' +source_filename = "parser.c" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-pc-linux-gnu" + +%struct.YYLTYPE = type { i32, i32, i32, i32 } +%union.YYSTYPE = type { i8* } +%struct.ASTNode = type { i32, %struct.ASTNode*, %struct.ASTNode*, %struct.ASTNode*, i32, float, i8*, i32 } +%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, %struct._IO_codecvt*, %struct._IO_wide_data*, %struct._IO_FILE*, i8*, i64, i32, [20 x i8] } +%struct._IO_marker = type opaque +%struct._IO_codecvt = type opaque +%struct._IO_wide_data = type opaque +%union.yyalloc = type { %union.YYSTYPE, [8 x i8] } +%struct.yypcontext_t = type { i8*, i32, %struct.YYLTYPE* } +%struct.__va_list_tag = type { i32, i32, i8*, i8* } + +@syntax_error = dso_local global i32 0, align 4 +@yylloc = dso_local global %struct.YYLTYPE { i32 1, i32 1, i32 1, i32 1 }, align 4 +@yychar = dso_local global i32 0, align 4 +@yypact = internal constant [207 x i16] [i16 112, i16 57, i16 85, i16 110, i16 94, i16 9, i16 -167, i16 112, i16 112, i16 112, i16 28, i16 93, i16 117, i16 126, i16 131, i16 155, i16 155, i16 -167, i16 -167, i16 -167, i16 -167, i16 64, i16 232, i16 -5, i16 -167, i16 98, i16 -167, i16 100, i16 144, i16 153, i16 164, i16 198, i16 207, i16 191, i16 195, i16 124, i16 -167, i16 -167, i16 232, i16 232, i16 232, i16 232, i16 196, i16 -8, i16 116, i16 -167, i16 -167, i16 214, i16 189, i16 191, i16 201, i16 191, i16 208, i16 200, i16 -167, i16 -167, i16 80, i16 104, i16 150, i16 -167, i16 191, i16 203, i16 232, i16 -167, i16 212, i16 -167, i16 6, i16 -167, i16 -167, i16 -167, i16 144, i16 232, i16 232, i16 232, i16 232, i16 232, i16 144, i16 -167, i16 70, i16 202, i16 -167, i16 -167, i16 191, i16 -167, i16 191, i16 218, i16 220, i16 165, i16 221, i16 165, i16 214, i16 214, i16 228, i16 225, i16 230, i16 224, i16 226, i16 -167, i16 150, i16 150, i16 -167, i16 229, i16 150, i16 231, i16 237, i16 -167, i16 -167, i16 236, i16 250, i16 249, i16 -167, i16 232, i16 232, i16 -167, i16 -167, i16 -167, i16 -167, i16 -167, i16 -167, i16 -167, i16 247, i16 251, i16 214, i16 -167, i16 -167, i16 107, i16 248, i16 -167, i16 253, i16 -167, i16 253, i16 -167, i16 -167, i16 252, i16 257, i16 257, i16 -167, i16 -167, i16 -167, i16 -167, i16 -167, i16 -167, i16 -167, i16 232, i16 232, i16 -167, i16 253, i16 -167, i16 -167, i16 189, i16 -167, i16 -167, i16 -167, i16 182, i16 155, i16 254, i16 256, i16 -167, i16 261, i16 101, i16 262, i16 -167, i16 242, i16 -167, i16 258, i16 163, i16 263, i16 260, i16 -167, i16 -167, i16 -167, i16 -167, i16 218, i16 -167, i16 165, i16 165, i16 232, i16 232, i16 232, i16 232, i16 232, i16 175, i16 257, i16 232, i16 232, i16 232, i16 175, i16 -167, i16 266, i16 -167, i16 -167, i16 12, i16 273, i16 -167, i16 -167, i16 -167, i16 -167, i16 279, i16 -167, i16 -167, i16 -167, i16 -167, i16 -167, i16 -167, i16 -167, i16 175, i16 -167], align 16 +@yytranslate = internal constant [296 x i8] c"\00\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F\10\11\12\13\14\15\16\17\18\19\1A\1B\1C\1D\1E\1F !\22#$%&'(", align 16 +@yycheck = internal constant [302 x i16] [i16 22, i16 58, i16 25, i16 38, i16 27, i16 16, i16 39, i16 40, i16 41, i16 0, i16 2, i16 111, i16 112, i16 48, i16 125, i16 181, i16 24, i16 22, i16 58, i16 27, i16 186, i16 26, i16 128, i16 176, i16 130, i16 28, i16 61, i16 62, i16 58, i16 17, i16 24, i16 184, i16 185, i16 27, i16 134, i16 135, i16 71, i16 72, i16 33, i16 205, i16 146, i16 98, i16 99, i16 78, i16 16, i16 102, i16 18, i16 35, i16 36, i16 37, i16 38, i16 73, i16 74, i16 75, i16 49, i16 47, i16 51, i16 92, i16 98, i16 99, i16 3, i16 172, i16 102, i16 85, i16 87, i16 60, i16 89, i16 70, i16 98, i16 99, i16 6, i16 7, i16 102, i16 3, i16 4, i16 5, i16 176, i16 177, i16 178, i16 179, i16 180, i16 17, i16 182, i16 183, i16 184, i16 185, i16 16, i16 82, i16 3, i16 84, i16 20, i16 21, i16 98, i16 99, i16 24, i16 25, i16 102, i16 27, i16 18, i16 91, i16 6, i16 7, i16 22, i16 125, i16 6, i16 7, i16 6, i16 7, i16 143, i16 144, i16 3, i16 4, i16 5, i16 3, i16 149, i16 17, i16 23, i16 17, i16 6, i16 7, i16 8, i16 9, i16 18, i16 16, i16 181, i16 158, i16 22, i16 20, i16 21, i16 186, i16 122, i16 24, i16 25, i16 16, i16 27, i16 18, i16 35, i16 36, i16 37, i16 38, i16 16, i16 176, i16 18, i16 154, i16 28, i16 29, i16 30, i16 16, i16 205, i16 23, i16 172, i16 174, i16 175, i16 3, i16 4, i16 5, i16 6, i16 7, i16 3, i16 9, i16 10, i16 11, i16 18, i16 13, i16 14, i16 15, i16 16, i16 7, i16 8, i16 9, i16 20, i16 6, i16 7, i16 23, i16 24, i16 25, i16 23, i16 27, i16 3, i16 4, i16 5, i16 177, i16 178, i16 179, i16 180, i16 10, i16 11, i16 23, i16 13, i16 14, i16 15, i16 16, i16 3, i16 4, i16 5, i16 20, i16 33, i16 34, i16 23, i16 24, i16 25, i16 3, i16 27, i16 21, i16 22, i16 16, i16 3, i16 4, i16 5, i16 20, i16 3, i16 20, i16 17, i16 24, i16 25, i16 19, i16 27, i16 3, i16 17, i16 16, i16 17, i16 3, i16 4, i16 5, i16 22, i16 17, i16 26, i16 24, i16 25, i16 17, i16 27, i16 3, i16 4, i16 5, i16 16, i16 3, i16 4, i16 5, i16 20, i16 19, i16 19, i16 16, i16 24, i16 25, i16 16, i16 27, i16 16, i16 23, i16 16, i16 23, i16 21, i16 23, i16 24, i16 25, i16 23, i16 27, i16 24, i16 25, i16 22, i16 27, i16 3, i16 4, i16 5, i16 26, i16 3, i16 4, i16 5, i16 17, i16 19, i16 22, i16 22, i16 18, i16 21, i16 16, i16 32, i16 23, i16 22, i16 16, i16 22, i16 17, i16 17, i16 24, i16 25, i16 23, i16 27, i16 24, i16 25, i16 21, i16 27, i16 31, i16 17, i16 12, i16 22, i16 48, i16 149, i16 144, i16 135, i16 182, i16 -1, i16 -1, i16 -1, i16 183], align 16 +@yytable = internal constant [302 x i16] [i16 43, i16 104, i16 50, i16 64, i16 52, i16 30, i16 67, i16 68, i16 69, i16 17, i16 13, i16 147, i16 148, i16 80, i16 153, i16 197, i16 71, i16 47, i16 98, i16 72, i16 202, i16 48, i16 155, i16 192, i16 156, i16 53, i16 107, i16 109, i16 99, i16 -63, i16 111, i16 200, i16 201, i16 112, i16 159, i16 159, i16 114, i16 115, i16 59, i16 206, i16 169, i16 104, i16 104, i16 80, i16 21, i16 104, i16 22, i16 177, i16 178, i16 179, i16 180, i16 116, i16 117, i16 118, i16 81, i16 77, i16 83, i16 133, i16 98, i16 98, i16 10, i16 188, i16 98, i16 43, i16 129, i16 105, i16 131, i16 113, i16 99, i16 99, i16 31, i16 32, i16 99, i16 35, i16 36, i16 37, i16 191, i16 159, i16 159, i16 159, i16 159, i16 33, i16 159, i16 159, i16 159, i16 159, i16 38, i16 123, i16 12, i16 124, i16 78, i16 119, i16 138, i16 139, i16 39, i16 40, i16 141, i16 41, i16 86, i16 13, i16 15, i16 16, i16 87, i16 43, i16 31, i16 32, i16 31, i16 32, i16 167, i16 107, i16 35, i16 36, i16 37, i16 14, i16 80, i16 49, i16 24, i16 51, i16 1, i16 2, i16 3, i16 4, i16 88, i16 38, i16 104, i16 68, i16 89, i16 125, i16 152, i16 104, i16 151, i16 39, i16 40, i16 25, i16 41, i16 22, i16 177, i16 178, i16 179, i16 180, i16 61, i16 64, i16 62, i16 173, i16 73, i16 74, i16 75, i16 27, i16 104, i16 26, i16 43, i16 189, i16 190, i16 35, i16 36, i16 37, i16 90, i16 91, i16 28, i16 4, i16 92, i16 93, i16 22, i16 94, i16 95, i16 96, i16 38, i16 18, i16 19, i16 20, i16 58, i16 31, i16 32, i16 97, i16 39, i16 40, i16 54, i16 41, i16 35, i16 36, i16 37, i16 193, i16 194, i16 195, i16 196, i16 92, i16 93, i16 55, i16 94, i16 95, i16 96, i16 38, i16 35, i16 36, i16 37, i16 58, i16 184, i16 185, i16 97, i16 39, i16 40, i16 56, i16 41, i16 171, i16 172, i16 38, i16 35, i16 36, i16 37, i16 78, i16 57, i16 58, i16 60, i16 39, i16 40, i16 70, i16 41, i16 76, i16 82, i16 38, i16 106, i16 35, i16 36, i16 37, i16 122, i16 84, i16 85, i16 39, i16 40, i16 110, i16 41, i16 35, i16 36, i16 37, i16 38, i16 35, i16 36, i16 37, i16 125, i16 128, i16 130, i16 134, i16 39, i16 40, i16 38, i16 41, i16 135, i16 136, i16 38, i16 137, i16 140, i16 132, i16 39, i16 40, i16 142, i16 41, i16 39, i16 40, i16 144, i16 41, i16 35, i16 36, i16 37, i16 143, i16 35, i16 36, i16 37, i16 145, i16 146, i16 149, i16 154, i16 62, i16 150, i16 38, i16 182, i16 157, i16 174, i16 176, i16 175, i16 181, i16 186, i16 39, i16 158, i16 187, i16 41, i16 39, i16 40, i16 203, i16 41, i16 183, i16 204, i16 205, i16 42, i16 79, i16 170, i16 168, i16 166, i16 198, i16 0, i16 0, i16 0, i16 199], align 16 +@yylval = dso_local global %union.YYSTYPE zeroinitializer, align 8 +@yydefact = internal constant [207 x i8] c"\00\00\00\00\00\00\02\03\04\05\0D\00\0D\00\00\00\00\01\06\07\08\00\00\18\16\00\17\00\0D\00\00\00\00\00\00cQR\00\00\00\00\00\13CGP\00\00\00\00\00\00\00\09\0A'(0!\00\00\00S\00?@KLJ\0D\00\00\00\00\00\0D\1A\00\19\1C\22\00#\00\00\00\00\00\00\00\00\00\00\00\00\006007\000\00P$HM\00\00O\00\00\0E\15\14DEF\1D\1F\00\00%&\00\0B\0Fc+c,=\00\00\00;<12/35\00\00IcBA\00\1E\1B\10\00\00)*>\00^\00TUWX[\00\00Nd \11\00\0C\00\00\00\00\00\00\00\00\00\00\00\00\004\00-.^\00_a`b8VY\\]:\12Z\009", align 16 +@yyr2 = internal constant [101 x i8] c"\00\02\01\01\01\01\02\02\02\04\04\04\06\00\04\01\02\03\05\01\03\03\03\03\02\04\04\06\01\02\03\01\03\05\05\05\06\06\06\02\02\05\05\04\04\07\07\03\00\02\02\02\04\02\01\01\05\07\05\02\02\02\03\01\01\03\03\01\03\03\03\01\03\04\02\02\02\01\03\03\01\01\01\02\01\01\03\01\01\03\04\01\03\03\01\03\03\03\03\00\04", align 16 +@root = dso_local global %struct.ASTNode* null, align 8 +@yyr1 = internal constant [101 x i8] c"\00)*++++++,,--..////00011222233344555555666666667888899999999999:;;;<<<<======>>????@ABBBCCDEEEFFFFFGG", align 16 +@yypgoto = internal constant [31 x i16] [i16 -167, i16 -167, i16 160, i16 -40, i16 -11, i16 -3, i16 -111, i16 270, i16 -30, i16 8, i16 245, i16 145, i16 -167, i16 -23, i16 5, i16 -6, i16 -166, i16 -35, i16 -100, i16 -22, i16 -33, i16 151, i16 -167, i16 -57, i16 161, i16 115, i16 118, i16 -167, i16 -153, i16 4, i16 -106], align 16 +@yydefgoto = internal constant [31 x i8] c"\00\05\06\07\1D\17~\7F\08\0Bxy\09\22defgAB,l-.\A0\A1\A2\A3\A4\A5?", align 16 +@yynerrs = dso_local global i32 0, align 4 +@.str = private unnamed_addr constant [13 x i8] c"syntax error\00", align 1 +@.str.1 = private unnamed_addr constant [18 x i8] c"Error: discarding\00", align 1 +@.str.2 = private unnamed_addr constant [15 x i8] c"Error: popping\00", align 1 +@yystos = internal constant [207 x i8] c"\00\06\07\08\09*+,15\032\032\03\06\07\00+++\10\12.\17\10\17\10\03--\06\07\116\03\04\05\10\18\19\1B0<=?@\16\1A\116\116.\17\17\03\03\147\11\10\12G:;<===\13\18\1B\1C\1D\1E\032\143:7\117\11\1A\12\16\12\16\06\07\0A\0B\0D\0E\0F\17,1789:@7\11:>:\11\18\1B.::<<<\1534\1677\14/0\136\136\17:\10\10\17\1788\158\17\1A\16\11\13;;\16\152\15/\16GG\17\19;ABCDEFA:>G4\15\16-\16\16\10#$%&\11 \1F!\22\11\17/66;EFFFF9BCEE9\15\11\0C9", align 16 +@.str.3 = private unnamed_addr constant [17 x i8] c"memory exhausted\00", align 1 +@.str.4 = private unnamed_addr constant [30 x i8] c"Cleanup: discarding lookahead\00", align 1 +@.str.5 = private unnamed_addr constant [17 x i8] c"Cleanup: popping\00", align 1 +@filename = dso_local global [100 x i8] zeroinitializer, align 16 +@.str.6 = private unnamed_addr constant [2 x i8] c"r\00", align 1 +@stdin = external global %struct._IO_FILE*, align 8 +@stderr = external global %struct._IO_FILE*, align 8 +@.str.7 = private unnamed_addr constant [7 x i8] c"%s:%d \00", align 1 +@yylineno = external global i32, align 4 +@.str.8 = private unnamed_addr constant [3 x i8] c".\0A\00", align 1 +@.str.9 = private unnamed_addr constant [28 x i8] c"syntax error, unexpected %s\00", align 1 +@.str.10 = private unnamed_addr constant [42 x i8] c"syntax error, unexpected %s, expecting %s\00", align 1 +@.str.11 = private unnamed_addr constant [48 x i8] c"syntax error, unexpected %s, expecting %s or %s\00", align 1 +@.str.12 = private unnamed_addr constant [54 x i8] c"syntax error, unexpected %s, expecting %s or %s or %s\00", align 1 +@.str.13 = private unnamed_addr constant [60 x i8] c"syntax error, unexpected %s, expecting %s or %s or %s or %s\00", align 1 +@yytname = internal constant [73 x i8*] [i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.14, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i32 0, i32 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.16, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.17, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.18, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.19, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.22, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.23, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.24, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.25, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.26, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.29, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.30, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.31, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.32, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.33, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.34, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.35, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.36, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.37, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.38, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.39, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.40, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.41, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.42, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.43, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.44, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.45, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.46, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.47, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.48, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.49, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.50, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.51, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.52, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.53, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.54, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.55, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.56, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.57, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.58, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.59, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.60, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.61, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.62, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.63, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.64, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.65, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.66, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.67, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.68, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.69, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.70, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.71, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.72, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.73, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.74, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.75, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.76, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.77, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.78, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.79, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.80, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.81, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.82, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.83, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.84, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.85, i32 0, i32 0), i8* null], align 16 +@.str.14 = private unnamed_addr constant [14 x i8] c"\22end of file\22\00", align 1 +@.str.15 = private unnamed_addr constant [6 x i8] c"error\00", align 1 +@.str.16 = private unnamed_addr constant [16 x i8] c"\22invalid token\22\00", align 1 +@.str.17 = private unnamed_addr constant [3 x i8] c"ID\00", align 1 +@.str.18 = private unnamed_addr constant [8 x i8] c"INT_LIT\00", align 1 +@.str.19 = private unnamed_addr constant [10 x i8] c"FLOAT_LIT\00", align 1 +@.str.20 = private unnamed_addr constant [4 x i8] c"INT\00", align 1 +@.str.21 = private unnamed_addr constant [6 x i8] c"FLOAT\00", align 1 +@.str.22 = private unnamed_addr constant [5 x i8] c"VOID\00", align 1 +@.str.23 = private unnamed_addr constant [6 x i8] c"CONST\00", align 1 +@.str.24 = private unnamed_addr constant [7 x i8] c"RETURN\00", align 1 +@.str.25 = private unnamed_addr constant [3 x i8] c"IF\00", align 1 +@.str.26 = private unnamed_addr constant [5 x i8] c"ELSE\00", align 1 +@.str.27 = private unnamed_addr constant [6 x i8] c"WHILE\00", align 1 +@.str.28 = private unnamed_addr constant [6 x i8] c"BREAK\00", align 1 +@.str.29 = private unnamed_addr constant [9 x i8] c"CONTINUE\00", align 1 +@.str.30 = private unnamed_addr constant [3 x i8] c"LP\00", align 1 +@.str.31 = private unnamed_addr constant [3 x i8] c"RP\00", align 1 +@.str.32 = private unnamed_addr constant [3 x i8] c"LB\00", align 1 +@.str.33 = private unnamed_addr constant [3 x i8] c"RB\00", align 1 +@.str.34 = private unnamed_addr constant [3 x i8] c"LC\00", align 1 +@.str.35 = private unnamed_addr constant [3 x i8] c"RC\00", align 1 +@.str.36 = private unnamed_addr constant [6 x i8] c"COMMA\00", align 1 +@.str.37 = private unnamed_addr constant [10 x i8] c"SEMICOLON\00", align 1 +@.str.38 = private unnamed_addr constant [6 x i8] c"MINUS\00", align 1 +@.str.39 = private unnamed_addr constant [4 x i8] c"NOT\00", align 1 +@.str.40 = private unnamed_addr constant [7 x i8] c"ASSIGN\00", align 1 +@.str.41 = private unnamed_addr constant [5 x i8] c"PLUS\00", align 1 +@.str.42 = private unnamed_addr constant [4 x i8] c"MUL\00", align 1 +@.str.43 = private unnamed_addr constant [4 x i8] c"DIV\00", align 1 +@.str.44 = private unnamed_addr constant [4 x i8] c"MOD\00", align 1 +@.str.45 = private unnamed_addr constant [4 x i8] c"AND\00", align 1 +@.str.46 = private unnamed_addr constant [3 x i8] c"OR\00", align 1 +@.str.47 = private unnamed_addr constant [3 x i8] c"EQ\00", align 1 +@.str.48 = private unnamed_addr constant [3 x i8] c"NE\00", align 1 +@.str.49 = private unnamed_addr constant [3 x i8] c"LT\00", align 1 +@.str.50 = private unnamed_addr constant [3 x i8] c"LE\00", align 1 +@.str.51 = private unnamed_addr constant [3 x i8] c"GT\00", align 1 +@.str.52 = private unnamed_addr constant [3 x i8] c"GE\00", align 1 +@.str.53 = private unnamed_addr constant [8 x i8] c"LEX_ERR\00", align 1 +@.str.54 = private unnamed_addr constant [5 x i8] c"THEN\00", align 1 +@.str.55 = private unnamed_addr constant [8 x i8] c"$accept\00", align 1 +@.str.56 = private unnamed_addr constant [5 x i8] c"Root\00", align 1 +@.str.57 = private unnamed_addr constant [9 x i8] c"CompUnit\00", align 1 +@.str.58 = private unnamed_addr constant [10 x i8] c"ConstDecl\00", align 1 +@.str.59 = private unnamed_addr constant [9 x i8] c"ConstDef\00", align 1 +@.str.60 = private unnamed_addr constant [14 x i8] c"ConstExpArray\00", align 1 +@.str.61 = private unnamed_addr constant [13 x i8] c"ConstInitVal\00", align 1 +@.str.62 = private unnamed_addr constant [9 x i8] c"ConstExp\00", align 1 +@.str.63 = private unnamed_addr constant [8 x i8] c"VarDecl\00", align 1 +@.str.64 = private unnamed_addr constant [7 x i8] c"VarDef\00", align 1 +@.str.65 = private unnamed_addr constant [8 x i8] c"InitVal\00", align 1 +@.str.66 = private unnamed_addr constant [9 x i8] c"InitVals\00", align 1 +@.str.67 = private unnamed_addr constant [8 x i8] c"FuncDef\00", align 1 +@.str.68 = private unnamed_addr constant [11 x i8] c"FuncFParam\00", align 1 +@.str.69 = private unnamed_addr constant [6 x i8] c"Block\00", align 1 +@.str.70 = private unnamed_addr constant [10 x i8] c"BlockItem\00", align 1 +@.str.71 = private unnamed_addr constant [5 x i8] c"Stmt\00", align 1 +@.str.72 = private unnamed_addr constant [4 x i8] c"Exp\00", align 1 +@.str.73 = private unnamed_addr constant [7 x i8] c"AddExp\00", align 1 +@.str.74 = private unnamed_addr constant [7 x i8] c"MulExp\00", align 1 +@.str.75 = private unnamed_addr constant [9 x i8] c"UnaryExp\00", align 1 +@.str.76 = private unnamed_addr constant [12 x i8] c"FuncRParams\00", align 1 +@.str.77 = private unnamed_addr constant [11 x i8] c"PrimaryExp\00", align 1 +@.str.78 = private unnamed_addr constant [5 x i8] c"LVal\00", align 1 +@.str.79 = private unnamed_addr constant [5 x i8] c"Cond\00", align 1 +@.str.80 = private unnamed_addr constant [7 x i8] c"LOrExp\00", align 1 +@.str.81 = private unnamed_addr constant [8 x i8] c"LAndExp\00", align 1 +@.str.82 = private unnamed_addr constant [8 x i8] c"LNotExp\00", align 1 +@.str.83 = private unnamed_addr constant [6 x i8] c"EqExp\00", align 1 +@.str.84 = private unnamed_addr constant [7 x i8] c"RelExp\00", align 1 +@.str.85 = private unnamed_addr constant [9 x i8] c"ExpArray\00", align 1 +@.str.86 = private unnamed_addr constant [9 x i8] c"Deleting\00", align 1 + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @yyparse() #0 { + %1 = alloca i32, align 4 + %2 = alloca i32, align 4 + %3 = alloca i64, align 8 + %4 = alloca [200 x i8], align 16 + %5 = alloca i8*, align 8 + %6 = alloca i8*, align 8 + %7 = alloca [200 x %union.YYSTYPE], align 16 + %8 = alloca %union.YYSTYPE*, align 8 + %9 = alloca %union.YYSTYPE*, align 8 + %10 = alloca [200 x %struct.YYLTYPE], align 16 + %11 = alloca %struct.YYLTYPE*, align 8 + %12 = alloca %struct.YYLTYPE*, align 8 + %13 = alloca i32, align 4 + %14 = alloca i32, align 4 + %15 = alloca i32, align 4 + %16 = alloca %union.YYSTYPE, align 8 + %17 = alloca %struct.YYLTYPE, align 4 + %18 = alloca [3 x %struct.YYLTYPE], align 16 + %19 = alloca [128 x i8], align 16 + %20 = alloca i8*, align 8 + %21 = alloca i64, align 8 + %22 = alloca i32, align 4 + %23 = alloca i64, align 8 + %24 = alloca i8*, align 8 + %25 = alloca %union.yyalloc*, align 8 + %26 = alloca i64, align 8 + %27 = alloca i64, align 8 + %28 = alloca i64, align 8 + %29 = alloca i32, align 4 + %30 = alloca i32, align 4 + %31 = alloca %struct.yypcontext_t, align 8 + %32 = alloca i8*, align 8 + %33 = alloca i32, align 4 + store i32 0, i32* %1, align 4 + store i32 0, i32* %2, align 4 + store i64 200, i64* %3, align 8 + %34 = getelementptr inbounds [200 x i8], [200 x i8]* %4, i64 0, i64 0 + store i8* %34, i8** %5, align 8 + %35 = load i8*, i8** %5, align 8 + store i8* %35, i8** %6, align 8 + %36 = getelementptr inbounds [200 x %union.YYSTYPE], [200 x %union.YYSTYPE]* %7, i64 0, i64 0 + store %union.YYSTYPE* %36, %union.YYSTYPE** %8, align 8 + %37 = load %union.YYSTYPE*, %union.YYSTYPE** %8, align 8 + store %union.YYSTYPE* %37, %union.YYSTYPE** %9, align 8 + %38 = getelementptr inbounds [200 x %struct.YYLTYPE], [200 x %struct.YYLTYPE]* %10, i64 0, i64 0 + store %struct.YYLTYPE* %38, %struct.YYLTYPE** %11, align 8 + %39 = load %struct.YYLTYPE*, %struct.YYLTYPE** %11, align 8 + store %struct.YYLTYPE* %39, %struct.YYLTYPE** %12, align 8 + store i32 -2, i32* %15, align 4 + %40 = getelementptr inbounds [128 x i8], [128 x i8]* %19, i64 0, i64 0 + store i8* %40, i8** %20, align 8 + store i64 128, i64* %21, align 8 + store i32 0, i32* %22, align 4 + store i32 -2, i32* @yychar, align 4 + %41 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %42 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %41, i64 0 + %43 = bitcast %struct.YYLTYPE* %42 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %43, i8* align 4 bitcast (%struct.YYLTYPE* @yylloc to i8*), i64 16, i1 false) + br label %47 + +44: ; preds = %1505, %1312, %242 + %45 = load i8*, i8** %6, align 8 + %46 = getelementptr inbounds i8, i8* %45, i32 1 + store i8* %46, i8** %6, align 8 + br label %47 + +47: ; preds = %44, %0 + %48 = load i32, i32* %1, align 4 + %49 = trunc i32 %48 to i8 + %50 = load i8*, i8** %6, align 8 + store i8 %49, i8* %50, align 1 + %51 = load i8*, i8** %5, align 8 + %52 = load i64, i64* %3, align 8 + %53 = getelementptr inbounds i8, i8* %51, i64 %52 + %54 = getelementptr inbounds i8, i8* %53, i64 -1 + %55 = load i8*, i8** %6, align 8 + %56 = icmp ule i8* %54, %55 + br i1 %56, label %57, label %162 + +57: ; preds = %47 + %58 = load i8*, i8** %6, align 8 + %59 = load i8*, i8** %5, align 8 + %60 = ptrtoint i8* %58 to i64 + %61 = ptrtoint i8* %59 to i64 + %62 = sub i64 %60, %61 + %63 = add nsw i64 %62, 1 + store i64 %63, i64* %23, align 8 + %64 = load i64, i64* %3, align 8 + %65 = icmp sle i64 10000, %64 + br i1 %65, label %66, label %67 + +66: ; preds = %57 + br label %1509 + +67: ; preds = %57 + %68 = load i64, i64* %3, align 8 + %69 = mul nsw i64 %68, 2 + store i64 %69, i64* %3, align 8 + %70 = load i64, i64* %3, align 8 + %71 = icmp slt i64 10000, %70 + br i1 %71, label %72, label %73 + +72: ; preds = %67 + store i64 10000, i64* %3, align 8 + br label %73 + +73: ; preds = %72, %67 + %74 = load i8*, i8** %5, align 8 + store i8* %74, i8** %24, align 8 + %75 = load i64, i64* %3, align 8 + %76 = mul nsw i64 %75, 25 + %77 = add nsw i64 %76, 30 + %78 = call noalias i8* @malloc(i64 noundef %77) #6 + %79 = bitcast i8* %78 to %union.yyalloc* + store %union.yyalloc* %79, %union.yyalloc** %25, align 8 + %80 = load %union.yyalloc*, %union.yyalloc** %25, align 8 + %81 = icmp ne %union.yyalloc* %80, null + br i1 %81, label %83, label %82 + +82: ; preds = %73 + br label %1509 + +83: ; preds = %73 + br label %84 + +84: ; preds = %83 + %85 = load %union.yyalloc*, %union.yyalloc** %25, align 8 + %86 = bitcast %union.yyalloc* %85 to i8* + %87 = load i8*, i8** %5, align 8 + %88 = load i64, i64* %23, align 8 + %89 = mul i64 %88, 1 + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %86, i8* align 1 %87, i64 %89, i1 false) + %90 = load %union.yyalloc*, %union.yyalloc** %25, align 8 + %91 = bitcast %union.yyalloc* %90 to i8* + store i8* %91, i8** %5, align 8 + %92 = load i64, i64* %3, align 8 + %93 = mul nsw i64 %92, 1 + %94 = add nsw i64 %93, 15 + store i64 %94, i64* %26, align 8 + %95 = load i64, i64* %26, align 8 + %96 = sdiv i64 %95, 16 + %97 = load %union.yyalloc*, %union.yyalloc** %25, align 8 + %98 = getelementptr inbounds %union.yyalloc, %union.yyalloc* %97, i64 %96 + store %union.yyalloc* %98, %union.yyalloc** %25, align 8 + br label %99 + +99: ; preds = %84 + br label %100 + +100: ; preds = %99 + %101 = load %union.yyalloc*, %union.yyalloc** %25, align 8 + %102 = bitcast %union.yyalloc* %101 to %union.YYSTYPE* + %103 = bitcast %union.YYSTYPE* %102 to i8* + %104 = load %union.YYSTYPE*, %union.YYSTYPE** %8, align 8 + %105 = bitcast %union.YYSTYPE* %104 to i8* + %106 = load i64, i64* %23, align 8 + %107 = mul i64 %106, 8 + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %103, i8* align 8 %105, i64 %107, i1 false) + %108 = load %union.yyalloc*, %union.yyalloc** %25, align 8 + %109 = bitcast %union.yyalloc* %108 to %union.YYSTYPE* + store %union.YYSTYPE* %109, %union.YYSTYPE** %8, align 8 + %110 = load i64, i64* %3, align 8 + %111 = mul nsw i64 %110, 8 + %112 = add nsw i64 %111, 15 + store i64 %112, i64* %27, align 8 + %113 = load i64, i64* %27, align 8 + %114 = sdiv i64 %113, 16 + %115 = load %union.yyalloc*, %union.yyalloc** %25, align 8 + %116 = getelementptr inbounds %union.yyalloc, %union.yyalloc* %115, i64 %114 + store %union.yyalloc* %116, %union.yyalloc** %25, align 8 + br label %117 + +117: ; preds = %100 + br label %118 + +118: ; preds = %117 + %119 = load %union.yyalloc*, %union.yyalloc** %25, align 8 + %120 = bitcast %union.yyalloc* %119 to %struct.YYLTYPE* + %121 = bitcast %struct.YYLTYPE* %120 to i8* + %122 = load %struct.YYLTYPE*, %struct.YYLTYPE** %11, align 8 + %123 = bitcast %struct.YYLTYPE* %122 to i8* + %124 = load i64, i64* %23, align 8 + %125 = mul i64 %124, 16 + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %121, i8* align 4 %123, i64 %125, i1 false) + %126 = load %union.yyalloc*, %union.yyalloc** %25, align 8 + %127 = bitcast %union.yyalloc* %126 to %struct.YYLTYPE* + store %struct.YYLTYPE* %127, %struct.YYLTYPE** %11, align 8 + %128 = load i64, i64* %3, align 8 + %129 = mul nsw i64 %128, 16 + %130 = add nsw i64 %129, 15 + store i64 %130, i64* %28, align 8 + %131 = load i64, i64* %28, align 8 + %132 = sdiv i64 %131, 16 + %133 = load %union.yyalloc*, %union.yyalloc** %25, align 8 + %134 = getelementptr inbounds %union.yyalloc, %union.yyalloc* %133, i64 %132 + store %union.yyalloc* %134, %union.yyalloc** %25, align 8 + br label %135 + +135: ; preds = %118 + %136 = load i8*, i8** %24, align 8 + %137 = getelementptr inbounds [200 x i8], [200 x i8]* %4, i64 0, i64 0 + %138 = icmp ne i8* %136, %137 + br i1 %138, label %139, label %141 + +139: ; preds = %135 + %140 = load i8*, i8** %24, align 8 + call void @free(i8* noundef %140) #6 + br label %141 + +141: ; preds = %139, %135 + %142 = load i8*, i8** %5, align 8 + %143 = load i64, i64* %23, align 8 + %144 = getelementptr inbounds i8, i8* %142, i64 %143 + %145 = getelementptr inbounds i8, i8* %144, i64 -1 + store i8* %145, i8** %6, align 8 + %146 = load %union.YYSTYPE*, %union.YYSTYPE** %8, align 8 + %147 = load i64, i64* %23, align 8 + %148 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %146, i64 %147 + %149 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %148, i64 -1 + store %union.YYSTYPE* %149, %union.YYSTYPE** %9, align 8 + %150 = load %struct.YYLTYPE*, %struct.YYLTYPE** %11, align 8 + %151 = load i64, i64* %23, align 8 + %152 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %150, i64 %151 + %153 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %152, i64 -1 + store %struct.YYLTYPE* %153, %struct.YYLTYPE** %12, align 8 + %154 = load i8*, i8** %5, align 8 + %155 = load i64, i64* %3, align 8 + %156 = getelementptr inbounds i8, i8* %154, i64 %155 + %157 = getelementptr inbounds i8, i8* %156, i64 -1 + %158 = load i8*, i8** %6, align 8 + %159 = icmp ule i8* %157, %158 + br i1 %159, label %160, label %161 + +160: ; preds = %141 + br label %1508 + +161: ; preds = %141 + br label %162 + +162: ; preds = %161, %47 + %163 = load i32, i32* %1, align 4 + %164 = icmp eq i32 %163, 17 + br i1 %164, label %165, label %166 + +165: ; preds = %162 + br label %1507 + +166: ; preds = %162 + br label %167 + +167: ; preds = %166 + %168 = load i32, i32* %1, align 4 + %169 = sext i32 %168 to i64 + %170 = getelementptr inbounds [207 x i16], [207 x i16]* @yypact, i64 0, i64 %169 + %171 = load i16, i16* %170, align 2 + %172 = sext i16 %171 to i32 + store i32 %172, i32* %13, align 4 + %173 = load i32, i32* %13, align 4 + %174 = icmp eq i32 %173, -167 + br i1 %174, label %175, label %176 + +175: ; preds = %167 + br label %250 + +176: ; preds = %167 + %177 = load i32, i32* @yychar, align 4 + %178 = icmp eq i32 %177, -2 + br i1 %178, label %179, label %181 + +179: ; preds = %176 + %180 = call i32 (...) @yylex() + store i32 %180, i32* @yychar, align 4 + br label %181 + +181: ; preds = %179, %176 + %182 = load i32, i32* @yychar, align 4 + %183 = icmp sle i32 %182, 0 + br i1 %183, label %184, label %185 + +184: ; preds = %181 + store i32 0, i32* @yychar, align 4 + store i32 0, i32* %15, align 4 + br label %207 + +185: ; preds = %181 + %186 = load i32, i32* @yychar, align 4 + %187 = icmp eq i32 %186, 256 + br i1 %187, label %188, label %191 + +188: ; preds = %185 + store i32 257, i32* @yychar, align 4 + store i32 1, i32* %15, align 4 + %189 = getelementptr inbounds [3 x %struct.YYLTYPE], [3 x %struct.YYLTYPE]* %18, i64 0, i64 1 + %190 = bitcast %struct.YYLTYPE* %189 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %190, i8* align 4 bitcast (%struct.YYLTYPE* @yylloc to i8*), i64 16, i1 false) + br label %1415 + +191: ; preds = %185 + %192 = load i32, i32* @yychar, align 4 + %193 = icmp sle i32 0, %192 + br i1 %193, label %194, label %203 + +194: ; preds = %191 + %195 = load i32, i32* @yychar, align 4 + %196 = icmp sle i32 %195, 295 + br i1 %196, label %197, label %203 + +197: ; preds = %194 + %198 = load i32, i32* @yychar, align 4 + %199 = sext i32 %198 to i64 + %200 = getelementptr inbounds [296 x i8], [296 x i8]* @yytranslate, i64 0, i64 %199 + %201 = load i8, i8* %200, align 1 + %202 = sext i8 %201 to i32 + br label %204 + +203: ; preds = %194, %191 + br label %204 + +204: ; preds = %203, %197 + %205 = phi i32 [ %202, %197 ], [ 2, %203 ] + store i32 %205, i32* %15, align 4 + br label %206 + +206: ; preds = %204 + br label %207 + +207: ; preds = %206, %184 + %208 = load i32, i32* %15, align 4 + %209 = load i32, i32* %13, align 4 + %210 = add nsw i32 %209, %208 + store i32 %210, i32* %13, align 4 + %211 = load i32, i32* %13, align 4 + %212 = icmp slt i32 %211, 0 + br i1 %212, label %224, label %213 + +213: ; preds = %207 + %214 = load i32, i32* %13, align 4 + %215 = icmp slt i32 301, %214 + br i1 %215, label %224, label %216 + +216: ; preds = %213 + %217 = load i32, i32* %13, align 4 + %218 = sext i32 %217 to i64 + %219 = getelementptr inbounds [302 x i16], [302 x i16]* @yycheck, i64 0, i64 %218 + %220 = load i16, i16* %219, align 2 + %221 = sext i16 %220 to i32 + %222 = load i32, i32* %15, align 4 + %223 = icmp ne i32 %221, %222 + br i1 %223, label %224, label %225 + +224: ; preds = %216, %213, %207 + br label %250 + +225: ; preds = %216 + %226 = load i32, i32* %13, align 4 + %227 = sext i32 %226 to i64 + %228 = getelementptr inbounds [302 x i16], [302 x i16]* @yytable, i64 0, i64 %227 + %229 = load i16, i16* %228, align 2 + %230 = sext i16 %229 to i32 + store i32 %230, i32* %13, align 4 + %231 = load i32, i32* %13, align 4 + %232 = icmp sle i32 %231, 0 + br i1 %232, label %233, label %236 + +233: ; preds = %225 + %234 = load i32, i32* %13, align 4 + %235 = sub nsw i32 0, %234 + store i32 %235, i32* %13, align 4 + br label %260 + +236: ; preds = %225 + %237 = load i32, i32* %2, align 4 + %238 = icmp ne i32 %237, 0 + br i1 %238, label %239, label %242 + +239: ; preds = %236 + %240 = load i32, i32* %2, align 4 + %241 = add nsw i32 %240, -1 + store i32 %241, i32* %2, align 4 + br label %242 + +242: ; preds = %239, %236 + %243 = load i32, i32* %13, align 4 + store i32 %243, i32* %1, align 4 + %244 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %245 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %244, i32 1 + store %union.YYSTYPE* %245, %union.YYSTYPE** %9, align 8 + %246 = bitcast %union.YYSTYPE* %245 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %246, i8* align 8 bitcast (%union.YYSTYPE* @yylval to i8*), i64 8, i1 false) + %247 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %248 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %247, i32 1 + store %struct.YYLTYPE* %248, %struct.YYLTYPE** %12, align 8 + %249 = bitcast %struct.YYLTYPE* %248 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %249, i8* align 4 bitcast (%struct.YYLTYPE* @yylloc to i8*), i64 16, i1 false) + store i32 -2, i32* @yychar, align 4 + br label %44 + +250: ; preds = %224, %175 + %251 = load i32, i32* %1, align 4 + %252 = sext i32 %251 to i64 + %253 = getelementptr inbounds [207 x i8], [207 x i8]* @yydefact, i64 0, i64 %252 + %254 = load i8, i8* %253, align 1 + %255 = sext i8 %254 to i32 + store i32 %255, i32* %13, align 4 + %256 = load i32, i32* %13, align 4 + %257 = icmp eq i32 %256, 0 + br i1 %257, label %258, label %259 + +258: ; preds = %250 + br label %1314 + +259: ; preds = %250 + br label %260 + +260: ; preds = %259, %233 + %261 = load i32, i32* %13, align 4 + %262 = sext i32 %261 to i64 + %263 = getelementptr inbounds [101 x i8], [101 x i8]* @yyr2, i64 0, i64 %262 + %264 = load i8, i8* %263, align 1 + %265 = sext i8 %264 to i32 + store i32 %265, i32* %22, align 4 + %266 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %267 = load i32, i32* %22, align 4 + %268 = sub nsw i32 1, %267 + %269 = sext i32 %268 to i64 + %270 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %266, i64 %269 + %271 = bitcast %union.YYSTYPE* %16 to i8* + %272 = bitcast %union.YYSTYPE* %270 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %271, i8* align 8 %272, i64 8, i1 false) + br label %273 + +273: ; preds = %260 + %274 = load i32, i32* %22, align 4 + %275 = icmp ne i32 %274, 0 + br i1 %275, label %276, label %317 + +276: ; preds = %273 + %277 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %278 = load i32, i32* %22, align 4 + %279 = sext i32 %278 to i64 + %280 = sub i64 0, %279 + %281 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %277, i64 %280 + %282 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %281, i64 1 + %283 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %282, i32 0, i32 0 + %284 = load i32, i32* %283, align 4 + %285 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %17, i32 0, i32 0 + store i32 %284, i32* %285, align 4 + %286 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %287 = load i32, i32* %22, align 4 + %288 = sext i32 %287 to i64 + %289 = sub i64 0, %288 + %290 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %286, i64 %289 + %291 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %290, i64 1 + %292 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %291, i32 0, i32 1 + %293 = load i32, i32* %292, align 4 + %294 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %17, i32 0, i32 1 + store i32 %293, i32* %294, align 4 + %295 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %296 = load i32, i32* %22, align 4 + %297 = sext i32 %296 to i64 + %298 = sub i64 0, %297 + %299 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %295, i64 %298 + %300 = load i32, i32* %22, align 4 + %301 = sext i32 %300 to i64 + %302 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %299, i64 %301 + %303 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %302, i32 0, i32 2 + %304 = load i32, i32* %303, align 4 + %305 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %17, i32 0, i32 2 + store i32 %304, i32* %305, align 4 + %306 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %307 = load i32, i32* %22, align 4 + %308 = sext i32 %307 to i64 + %309 = sub i64 0, %308 + %310 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %306, i64 %309 + %311 = load i32, i32* %22, align 4 + %312 = sext i32 %311 to i64 + %313 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %310, i64 %312 + %314 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %313, i32 0, i32 3 + %315 = load i32, i32* %314, align 4 + %316 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %17, i32 0, i32 3 + store i32 %315, i32* %316, align 4 + br label %338 + +317: ; preds = %273 + %318 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %319 = load i32, i32* %22, align 4 + %320 = sext i32 %319 to i64 + %321 = sub i64 0, %320 + %322 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %318, i64 %321 + %323 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %322, i64 0 + %324 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %323, i32 0, i32 2 + %325 = load i32, i32* %324, align 4 + %326 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %17, i32 0, i32 2 + store i32 %325, i32* %326, align 4 + %327 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %17, i32 0, i32 0 + store i32 %325, i32* %327, align 4 + %328 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %329 = load i32, i32* %22, align 4 + %330 = sext i32 %329 to i64 + %331 = sub i64 0, %330 + %332 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %328, i64 %331 + %333 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %332, i64 0 + %334 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %333, i32 0, i32 3 + %335 = load i32, i32* %334, align 4 + %336 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %17, i32 0, i32 3 + store i32 %335, i32* %336, align 4 + %337 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %17, i32 0, i32 1 + store i32 %335, i32* %337, align 4 + br label %338 + +338: ; preds = %317, %276 + br label %339 + +339: ; preds = %338 + %340 = getelementptr inbounds [3 x %struct.YYLTYPE], [3 x %struct.YYLTYPE]* %18, i64 0, i64 1 + %341 = bitcast %struct.YYLTYPE* %340 to i8* + %342 = bitcast %struct.YYLTYPE* %17 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %341, i8* align 4 %342, i64 16, i1 false) + %343 = load i32, i32* %13, align 4 + switch i32 %343, label %1245 [ + i32 2, label %344 + i32 3, label %350 + i32 4, label %357 + i32 5, label %364 + i32 6, label %371 + i32 7, label %382 + i32 8, label %393 + i32 9, label %404 + i32 10, label %411 + i32 11, label %418 + i32 12, label %433 + i32 13, label %452 + i32 14, label %454 + i32 15, label %465 + i32 16, label %472 + i32 17, label %475 + i32 18, label %482 + i32 19, label %493 + i32 20, label %500 + i32 21, label %511 + i32 22, label %522 + i32 23, label %529 + i32 24, label %536 + i32 25, label %547 + i32 26, label %562 + i32 27, label %577 + i32 28, label %596 + i32 29, label %603 + i32 30, label %606 + i32 31, label %613 + i32 32, label %620 + i32 33, label %631 + i32 34, label %642 + i32 35, label %653 + i32 36, label %664 + i32 37, label %679 + i32 38, label %694 + i32 39, label %709 + i32 40, label %716 + i32 41, label %723 + i32 42, label %734 + i32 43, label %745 + i32 44, label %756 + i32 45, label %767 + i32 46, label %782 + i32 47, label %797 + i32 48, label %804 + i32 49, label %806 + i32 50, label %817 + i32 51, label %828 + i32 52, label %839 + i32 53, label %850 + i32 54, label %857 + i32 55, label %859 + i32 56, label %866 + i32 57, label %877 + i32 58, label %892 + i32 59, label %903 + i32 60, label %905 + i32 61, label %907 + i32 62, label %909 + i32 63, label %916 + i32 64, label %923 + i32 65, label %930 + i32 66, label %941 + i32 67, label %952 + i32 68, label %959 + i32 69, label %970 + i32 70, label %981 + i32 71, label %992 + i32 72, label %999 + i32 73, label %1006 + i32 74, label %1017 + i32 75, label %1024 + i32 76, label %1031 + i32 77, label %1038 + i32 78, label %1045 + i32 79, label %1056 + i32 80, label %1063 + i32 81, label %1070 + i32 82, label %1077 + i32 83, label %1084 + i32 84, label %1095 + i32 85, label %1102 + i32 86, label %1109 + i32 87, label %1120 + i32 88, label %1127 + i32 89, label %1134 + i32 90, label %1145 + i32 91, label %1152 + i32 92, label %1159 + i32 93, label %1170 + i32 94, label %1181 + i32 95, label %1188 + i32 96, label %1199 + i32 97, label %1210 + i32 98, label %1221 + i32 99, label %1232 + i32 100, label %1234 + ] + +344: ; preds = %339 + %345 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %346 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %345, i64 0 + %347 = bitcast %union.YYSTYPE* %346 to %struct.ASTNode** + %348 = load %struct.ASTNode*, %struct.ASTNode** %347, align 8 + %349 = call %struct.ASTNode* @new_node(i32 noundef 45, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %348, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + store %struct.ASTNode* %349, %struct.ASTNode** @root, align 8 + br label %1246 + +350: ; preds = %339 + %351 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %352 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %351, i64 0 + %353 = bitcast %union.YYSTYPE* %352 to %struct.ASTNode** + %354 = load %struct.ASTNode*, %struct.ASTNode** %353, align 8 + %355 = call %struct.ASTNode* @new_node(i32 noundef 0, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %354, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %356 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %355, %struct.ASTNode** %356, align 8 + br label %1246 + +357: ; preds = %339 + %358 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %359 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %358, i64 0 + %360 = bitcast %union.YYSTYPE* %359 to %struct.ASTNode** + %361 = load %struct.ASTNode*, %struct.ASTNode** %360, align 8 + %362 = call %struct.ASTNode* @new_node(i32 noundef 0, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %361, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %363 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %362, %struct.ASTNode** %363, align 8 + br label %1246 + +364: ; preds = %339 + %365 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %366 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %365, i64 0 + %367 = bitcast %union.YYSTYPE* %366 to %struct.ASTNode** + %368 = load %struct.ASTNode*, %struct.ASTNode** %367, align 8 + %369 = call %struct.ASTNode* @new_node(i32 noundef 0, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %368, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %370 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %369, %struct.ASTNode** %370, align 8 + br label %1246 + +371: ; preds = %339 + %372 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %373 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %372, i64 0 + %374 = bitcast %union.YYSTYPE* %373 to %struct.ASTNode** + %375 = load %struct.ASTNode*, %struct.ASTNode** %374, align 8 + %376 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %377 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %376, i64 -1 + %378 = bitcast %union.YYSTYPE* %377 to %struct.ASTNode** + %379 = load %struct.ASTNode*, %struct.ASTNode** %378, align 8 + %380 = call %struct.ASTNode* @new_node(i32 noundef 0, %struct.ASTNode* noundef %375, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %379, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %381 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %380, %struct.ASTNode** %381, align 8 + br label %1246 + +382: ; preds = %339 + %383 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %384 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %383, i64 0 + %385 = bitcast %union.YYSTYPE* %384 to %struct.ASTNode** + %386 = load %struct.ASTNode*, %struct.ASTNode** %385, align 8 + %387 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %388 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %387, i64 -1 + %389 = bitcast %union.YYSTYPE* %388 to %struct.ASTNode** + %390 = load %struct.ASTNode*, %struct.ASTNode** %389, align 8 + %391 = call %struct.ASTNode* @new_node(i32 noundef 0, %struct.ASTNode* noundef %386, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %390, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %392 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %391, %struct.ASTNode** %392, align 8 + br label %1246 + +393: ; preds = %339 + %394 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %395 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %394, i64 0 + %396 = bitcast %union.YYSTYPE* %395 to %struct.ASTNode** + %397 = load %struct.ASTNode*, %struct.ASTNode** %396, align 8 + %398 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %399 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %398, i64 -1 + %400 = bitcast %union.YYSTYPE* %399 to %struct.ASTNode** + %401 = load %struct.ASTNode*, %struct.ASTNode** %400, align 8 + %402 = call %struct.ASTNode* @new_node(i32 noundef 0, %struct.ASTNode* noundef %397, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %401, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %403 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %402, %struct.ASTNode** %403, align 8 + br label %1246 + +404: ; preds = %339 + %405 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %406 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %405, i64 -1 + %407 = bitcast %union.YYSTYPE* %406 to %struct.ASTNode** + %408 = load %struct.ASTNode*, %struct.ASTNode** %407, align 8 + %409 = call %struct.ASTNode* @new_node(i32 noundef 1, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %408, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 40) + %410 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %409, %struct.ASTNode** %410, align 8 + br label %1246 + +411: ; preds = %339 + %412 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %413 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %412, i64 -1 + %414 = bitcast %union.YYSTYPE* %413 to %struct.ASTNode** + %415 = load %struct.ASTNode*, %struct.ASTNode** %414, align 8 + %416 = call %struct.ASTNode* @new_node(i32 noundef 1, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %415, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 39) + %417 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %416, %struct.ASTNode** %417, align 8 + br label %1246 + +418: ; preds = %339 + %419 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %420 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %419, i64 -2 + %421 = bitcast %union.YYSTYPE* %420 to %struct.ASTNode** + %422 = load %struct.ASTNode*, %struct.ASTNode** %421, align 8 + %423 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %424 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %423, i64 0 + %425 = bitcast %union.YYSTYPE* %424 to %struct.ASTNode** + %426 = load %struct.ASTNode*, %struct.ASTNode** %425, align 8 + %427 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %428 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %427, i64 -3 + %429 = bitcast %union.YYSTYPE* %428 to i8** + %430 = load i8*, i8** %429, align 8 + %431 = call %struct.ASTNode* @new_node(i32 noundef 4, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %422, %struct.ASTNode* noundef %426, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %430, i32 noundef 38) + %432 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %431, %struct.ASTNode** %432, align 8 + br label %1246 + +433: ; preds = %339 + %434 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %435 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %434, i64 0 + %436 = bitcast %union.YYSTYPE* %435 to %struct.ASTNode** + %437 = load %struct.ASTNode*, %struct.ASTNode** %436, align 8 + %438 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %439 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %438, i64 -4 + %440 = bitcast %union.YYSTYPE* %439 to %struct.ASTNode** + %441 = load %struct.ASTNode*, %struct.ASTNode** %440, align 8 + %442 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %443 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %442, i64 -2 + %444 = bitcast %union.YYSTYPE* %443 to %struct.ASTNode** + %445 = load %struct.ASTNode*, %struct.ASTNode** %444, align 8 + %446 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %447 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %446, i64 -5 + %448 = bitcast %union.YYSTYPE* %447 to i8** + %449 = load i8*, i8** %448, align 8 + %450 = call %struct.ASTNode* @new_node(i32 noundef 4, %struct.ASTNode* noundef %437, %struct.ASTNode* noundef %441, %struct.ASTNode* noundef %445, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %449, i32 noundef 38) + %451 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %450, %struct.ASTNode** %451, align 8 + br label %1246 + +452: ; preds = %339 + %453 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* null, %struct.ASTNode** %453, align 8 + br label %1246 + +454: ; preds = %339 + %455 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %456 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %455, i64 0 + %457 = bitcast %union.YYSTYPE* %456 to %struct.ASTNode** + %458 = load %struct.ASTNode*, %struct.ASTNode** %457, align 8 + %459 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %460 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %459, i64 -2 + %461 = bitcast %union.YYSTYPE* %460 to %struct.ASTNode** + %462 = load %struct.ASTNode*, %struct.ASTNode** %461, align 8 + %463 = call %struct.ASTNode* @new_node(i32 noundef 26, %struct.ASTNode* noundef %458, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %462, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %464 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %463, %struct.ASTNode** %464, align 8 + br label %1246 + +465: ; preds = %339 + %466 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %467 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %466, i64 0 + %468 = bitcast %union.YYSTYPE* %467 to %struct.ASTNode** + %469 = load %struct.ASTNode*, %struct.ASTNode** %468, align 8 + %470 = call %struct.ASTNode* @new_node(i32 noundef 5, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %469, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %471 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %470, %struct.ASTNode** %471, align 8 + br label %1246 + +472: ; preds = %339 + %473 = call %struct.ASTNode* @new_node(i32 noundef 5, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %474 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %473, %struct.ASTNode** %474, align 8 + br label %1246 + +475: ; preds = %339 + %476 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %477 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %476, i64 -1 + %478 = bitcast %union.YYSTYPE* %477 to %struct.ASTNode** + %479 = load %struct.ASTNode*, %struct.ASTNode** %478, align 8 + %480 = call %struct.ASTNode* @new_node(i32 noundef 5, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %479, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %481 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %480, %struct.ASTNode** %481, align 8 + br label %1246 + +482: ; preds = %339 + %483 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %484 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %483, i64 -1 + %485 = bitcast %union.YYSTYPE* %484 to %struct.ASTNode** + %486 = load %struct.ASTNode*, %struct.ASTNode** %485, align 8 + %487 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %488 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %487, i64 -3 + %489 = bitcast %union.YYSTYPE* %488 to %struct.ASTNode** + %490 = load %struct.ASTNode*, %struct.ASTNode** %489, align 8 + %491 = call %struct.ASTNode* @new_node(i32 noundef 5, %struct.ASTNode* noundef %486, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %490, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %492 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %491, %struct.ASTNode** %492, align 8 + br label %1246 + +493: ; preds = %339 + %494 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %495 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %494, i64 0 + %496 = bitcast %union.YYSTYPE* %495 to %struct.ASTNode** + %497 = load %struct.ASTNode*, %struct.ASTNode** %496, align 8 + %498 = call %struct.ASTNode* @new_node(i32 noundef 25, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %497, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %499 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %498, %struct.ASTNode** %499, align 8 + br label %1246 + +500: ; preds = %339 + %501 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %502 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %501, i64 0 + %503 = bitcast %union.YYSTYPE* %502 to %struct.ASTNode** + %504 = load %struct.ASTNode*, %struct.ASTNode** %503, align 8 + %505 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %506 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %505, i64 -2 + %507 = bitcast %union.YYSTYPE* %506 to %struct.ASTNode** + %508 = load %struct.ASTNode*, %struct.ASTNode** %507, align 8 + %509 = call %struct.ASTNode* @new_node(i32 noundef 25, %struct.ASTNode* noundef %504, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %508, i32 noundef 282, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %510 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %509, %struct.ASTNode** %510, align 8 + br label %1246 + +511: ; preds = %339 + %512 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %513 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %512, i64 0 + %514 = bitcast %union.YYSTYPE* %513 to %struct.ASTNode** + %515 = load %struct.ASTNode*, %struct.ASTNode** %514, align 8 + %516 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %517 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %516, i64 -2 + %518 = bitcast %union.YYSTYPE* %517 to %struct.ASTNode** + %519 = load %struct.ASTNode*, %struct.ASTNode** %518, align 8 + %520 = call %struct.ASTNode* @new_node(i32 noundef 25, %struct.ASTNode* noundef %515, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %519, i32 noundef 279, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %521 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %520, %struct.ASTNode** %521, align 8 + br label %1246 + +522: ; preds = %339 + %523 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %524 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %523, i64 -1 + %525 = bitcast %union.YYSTYPE* %524 to %struct.ASTNode** + %526 = load %struct.ASTNode*, %struct.ASTNode** %525, align 8 + %527 = call %struct.ASTNode* @new_node(i32 noundef 2, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %526, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 40) + %528 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %527, %struct.ASTNode** %528, align 8 + br label %1246 + +529: ; preds = %339 + %530 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %531 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %530, i64 -1 + %532 = bitcast %union.YYSTYPE* %531 to %struct.ASTNode** + %533 = load %struct.ASTNode*, %struct.ASTNode** %532, align 8 + %534 = call %struct.ASTNode* @new_node(i32 noundef 2, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %533, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 39) + %535 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %534, %struct.ASTNode** %535, align 8 + br label %1246 + +536: ; preds = %339 + %537 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %538 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %537, i64 0 + %539 = bitcast %union.YYSTYPE* %538 to %struct.ASTNode** + %540 = load %struct.ASTNode*, %struct.ASTNode** %539, align 8 + %541 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %542 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %541, i64 -1 + %543 = bitcast %union.YYSTYPE* %542 to i8** + %544 = load i8*, i8** %543, align 8 + %545 = call %struct.ASTNode* @new_node(i32 noundef 6, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %540, %struct.ASTNode* noundef null, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %544, i32 noundef 38) + %546 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %545, %struct.ASTNode** %546, align 8 + br label %1246 + +547: ; preds = %339 + %548 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %549 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %548, i64 -2 + %550 = bitcast %union.YYSTYPE* %549 to %struct.ASTNode** + %551 = load %struct.ASTNode*, %struct.ASTNode** %550, align 8 + %552 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %553 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %552, i64 0 + %554 = bitcast %union.YYSTYPE* %553 to %struct.ASTNode** + %555 = load %struct.ASTNode*, %struct.ASTNode** %554, align 8 + %556 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %557 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %556, i64 -3 + %558 = bitcast %union.YYSTYPE* %557 to i8** + %559 = load i8*, i8** %558, align 8 + %560 = call %struct.ASTNode* @new_node(i32 noundef 6, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %551, %struct.ASTNode* noundef %555, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %559, i32 noundef 38) + %561 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %560, %struct.ASTNode** %561, align 8 + br label %1246 + +562: ; preds = %339 + %563 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %564 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %563, i64 0 + %565 = bitcast %union.YYSTYPE* %564 to %struct.ASTNode** + %566 = load %struct.ASTNode*, %struct.ASTNode** %565, align 8 + %567 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %568 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %567, i64 -2 + %569 = bitcast %union.YYSTYPE* %568 to %struct.ASTNode** + %570 = load %struct.ASTNode*, %struct.ASTNode** %569, align 8 + %571 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %572 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %571, i64 -3 + %573 = bitcast %union.YYSTYPE* %572 to i8** + %574 = load i8*, i8** %573, align 8 + %575 = call %struct.ASTNode* @new_node(i32 noundef 6, %struct.ASTNode* noundef %566, %struct.ASTNode* noundef %570, %struct.ASTNode* noundef null, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %574, i32 noundef 38) + %576 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %575, %struct.ASTNode** %576, align 8 + br label %1246 + +577: ; preds = %339 + %578 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %579 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %578, i64 0 + %580 = bitcast %union.YYSTYPE* %579 to %struct.ASTNode** + %581 = load %struct.ASTNode*, %struct.ASTNode** %580, align 8 + %582 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %583 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %582, i64 -4 + %584 = bitcast %union.YYSTYPE* %583 to %struct.ASTNode** + %585 = load %struct.ASTNode*, %struct.ASTNode** %584, align 8 + %586 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %587 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %586, i64 -2 + %588 = bitcast %union.YYSTYPE* %587 to %struct.ASTNode** + %589 = load %struct.ASTNode*, %struct.ASTNode** %588, align 8 + %590 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %591 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %590, i64 -5 + %592 = bitcast %union.YYSTYPE* %591 to i8** + %593 = load i8*, i8** %592, align 8 + %594 = call %struct.ASTNode* @new_node(i32 noundef 6, %struct.ASTNode* noundef %581, %struct.ASTNode* noundef %585, %struct.ASTNode* noundef %589, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %593, i32 noundef 38) + %595 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %594, %struct.ASTNode** %595, align 8 + br label %1246 + +596: ; preds = %339 + %597 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %598 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %597, i64 0 + %599 = bitcast %union.YYSTYPE* %598 to %struct.ASTNode** + %600 = load %struct.ASTNode*, %struct.ASTNode** %599, align 8 + %601 = call %struct.ASTNode* @new_node(i32 noundef 7, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %600, i32 noundef 10, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %602 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %601, %struct.ASTNode** %602, align 8 + br label %1246 + +603: ; preds = %339 + %604 = call %struct.ASTNode* @new_node(i32 noundef 7, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, i32 noundef 41, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %605 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %604, %struct.ASTNode** %605, align 8 + br label %1246 + +606: ; preds = %339 + %607 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %608 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %607, i64 -1 + %609 = bitcast %union.YYSTYPE* %608 to %struct.ASTNode** + %610 = load %struct.ASTNode*, %struct.ASTNode** %609, align 8 + %611 = call %struct.ASTNode* @new_node(i32 noundef 7, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %610, i32 noundef 41, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %612 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %611, %struct.ASTNode** %612, align 8 + br label %1246 + +613: ; preds = %339 + %614 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %615 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %614, i64 0 + %616 = bitcast %union.YYSTYPE* %615 to %struct.ASTNode** + %617 = load %struct.ASTNode*, %struct.ASTNode** %616, align 8 + %618 = call %struct.ASTNode* @new_node(i32 noundef 41, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %617, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %619 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %618, %struct.ASTNode** %619, align 8 + br label %1246 + +620: ; preds = %339 + %621 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %622 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %621, i64 0 + %623 = bitcast %union.YYSTYPE* %622 to %struct.ASTNode** + %624 = load %struct.ASTNode*, %struct.ASTNode** %623, align 8 + %625 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %626 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %625, i64 -2 + %627 = bitcast %union.YYSTYPE* %626 to %struct.ASTNode** + %628 = load %struct.ASTNode*, %struct.ASTNode** %627, align 8 + %629 = call %struct.ASTNode* @new_node(i32 noundef 41, %struct.ASTNode* noundef %624, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %628, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %630 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %629, %struct.ASTNode** %630, align 8 + br label %1246 + +631: ; preds = %339 + %632 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %633 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %632, i64 0 + %634 = bitcast %union.YYSTYPE* %633 to %struct.ASTNode** + %635 = load %struct.ASTNode*, %struct.ASTNode** %634, align 8 + %636 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %637 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %636, i64 -3 + %638 = bitcast %union.YYSTYPE* %637 to i8** + %639 = load i8*, i8** %638, align 8 + %640 = call %struct.ASTNode* @new_node(i32 noundef 3, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %635, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %639, i32 noundef 40) + %641 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %640, %struct.ASTNode** %641, align 8 + br label %1246 + +642: ; preds = %339 + %643 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %644 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %643, i64 0 + %645 = bitcast %union.YYSTYPE* %644 to %struct.ASTNode** + %646 = load %struct.ASTNode*, %struct.ASTNode** %645, align 8 + %647 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %648 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %647, i64 -3 + %649 = bitcast %union.YYSTYPE* %648 to i8** + %650 = load i8*, i8** %649, align 8 + %651 = call %struct.ASTNode* @new_node(i32 noundef 3, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %646, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %650, i32 noundef 39) + %652 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %651, %struct.ASTNode** %652, align 8 + br label %1246 + +653: ; preds = %339 + %654 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %655 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %654, i64 0 + %656 = bitcast %union.YYSTYPE* %655 to %struct.ASTNode** + %657 = load %struct.ASTNode*, %struct.ASTNode** %656, align 8 + %658 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %659 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %658, i64 -3 + %660 = bitcast %union.YYSTYPE* %659 to i8** + %661 = load i8*, i8** %660, align 8 + %662 = call %struct.ASTNode* @new_node(i32 noundef 3, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %657, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %661, i32 noundef 42) + %663 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %662, %struct.ASTNode** %663, align 8 + br label %1246 + +664: ; preds = %339 + %665 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %666 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %665, i64 -2 + %667 = bitcast %union.YYSTYPE* %666 to %struct.ASTNode** + %668 = load %struct.ASTNode*, %struct.ASTNode** %667, align 8 + %669 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %670 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %669, i64 0 + %671 = bitcast %union.YYSTYPE* %670 to %struct.ASTNode** + %672 = load %struct.ASTNode*, %struct.ASTNode** %671, align 8 + %673 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %674 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %673, i64 -4 + %675 = bitcast %union.YYSTYPE* %674 to i8** + %676 = load i8*, i8** %675, align 8 + %677 = call %struct.ASTNode* @new_node(i32 noundef 3, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %668, %struct.ASTNode* noundef %672, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %676, i32 noundef 40) + %678 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %677, %struct.ASTNode** %678, align 8 + br label %1246 + +679: ; preds = %339 + %680 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %681 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %680, i64 -2 + %682 = bitcast %union.YYSTYPE* %681 to %struct.ASTNode** + %683 = load %struct.ASTNode*, %struct.ASTNode** %682, align 8 + %684 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %685 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %684, i64 0 + %686 = bitcast %union.YYSTYPE* %685 to %struct.ASTNode** + %687 = load %struct.ASTNode*, %struct.ASTNode** %686, align 8 + %688 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %689 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %688, i64 -4 + %690 = bitcast %union.YYSTYPE* %689 to i8** + %691 = load i8*, i8** %690, align 8 + %692 = call %struct.ASTNode* @new_node(i32 noundef 3, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %683, %struct.ASTNode* noundef %687, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %691, i32 noundef 39) + %693 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %692, %struct.ASTNode** %693, align 8 + br label %1246 + +694: ; preds = %339 + %695 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %696 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %695, i64 -2 + %697 = bitcast %union.YYSTYPE* %696 to %struct.ASTNode** + %698 = load %struct.ASTNode*, %struct.ASTNode** %697, align 8 + %699 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %700 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %699, i64 0 + %701 = bitcast %union.YYSTYPE* %700 to %struct.ASTNode** + %702 = load %struct.ASTNode*, %struct.ASTNode** %701, align 8 + %703 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %704 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %703, i64 -4 + %705 = bitcast %union.YYSTYPE* %704 to i8** + %706 = load i8*, i8** %705, align 8 + %707 = call %struct.ASTNode* @new_node(i32 noundef 3, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %698, %struct.ASTNode* noundef %702, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %706, i32 noundef 42) + %708 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %707, %struct.ASTNode** %708, align 8 + br label %1246 + +709: ; preds = %339 + %710 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %711 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %710, i64 0 + %712 = bitcast %union.YYSTYPE* %711 to i8** + %713 = load i8*, i8** %712, align 8 + %714 = call %struct.ASTNode* @new_node(i32 noundef 8, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %713, i32 noundef 40) + %715 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %714, %struct.ASTNode** %715, align 8 + br label %1246 + +716: ; preds = %339 + %717 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %718 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %717, i64 0 + %719 = bitcast %union.YYSTYPE* %718 to i8** + %720 = load i8*, i8** %719, align 8 + %721 = call %struct.ASTNode* @new_node(i32 noundef 8, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %720, i32 noundef 39) + %722 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %721, %struct.ASTNode** %722, align 8 + br label %1246 + +723: ; preds = %339 + %724 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %725 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %724, i64 0 + %726 = bitcast %union.YYSTYPE* %725 to %struct.ASTNode** + %727 = load %struct.ASTNode*, %struct.ASTNode** %726, align 8 + %728 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %729 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %728, i64 -3 + %730 = bitcast %union.YYSTYPE* %729 to i8** + %731 = load i8*, i8** %730, align 8 + %732 = call %struct.ASTNode* @new_node(i32 noundef 8, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %727, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %731, i32 noundef 40) + %733 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %732, %struct.ASTNode** %733, align 8 + br label %1246 + +734: ; preds = %339 + %735 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %736 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %735, i64 0 + %737 = bitcast %union.YYSTYPE* %736 to %struct.ASTNode** + %738 = load %struct.ASTNode*, %struct.ASTNode** %737, align 8 + %739 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %740 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %739, i64 -3 + %741 = bitcast %union.YYSTYPE* %740 to i8** + %742 = load i8*, i8** %741, align 8 + %743 = call %struct.ASTNode* @new_node(i32 noundef 8, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %738, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %742, i32 noundef 39) + %744 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %743, %struct.ASTNode** %744, align 8 + br label %1246 + +745: ; preds = %339 + %746 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %747 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %746, i64 0 + %748 = bitcast %union.YYSTYPE* %747 to %struct.ASTNode** + %749 = load %struct.ASTNode*, %struct.ASTNode** %748, align 8 + %750 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %751 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %750, i64 -2 + %752 = bitcast %union.YYSTYPE* %751 to i8** + %753 = load i8*, i8** %752, align 8 + %754 = call %struct.ASTNode* @new_node(i32 noundef 8, %struct.ASTNode* noundef %749, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %753, i32 noundef 40) + %755 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %754, %struct.ASTNode** %755, align 8 + br label %1246 + +756: ; preds = %339 + %757 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %758 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %757, i64 0 + %759 = bitcast %union.YYSTYPE* %758 to %struct.ASTNode** + %760 = load %struct.ASTNode*, %struct.ASTNode** %759, align 8 + %761 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %762 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %761, i64 -2 + %763 = bitcast %union.YYSTYPE* %762 to i8** + %764 = load i8*, i8** %763, align 8 + %765 = call %struct.ASTNode* @new_node(i32 noundef 8, %struct.ASTNode* noundef %760, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %764, i32 noundef 39) + %766 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %765, %struct.ASTNode** %766, align 8 + br label %1246 + +767: ; preds = %339 + %768 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %769 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %768, i64 0 + %770 = bitcast %union.YYSTYPE* %769 to %struct.ASTNode** + %771 = load %struct.ASTNode*, %struct.ASTNode** %770, align 8 + %772 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %773 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %772, i64 -2 + %774 = bitcast %union.YYSTYPE* %773 to %struct.ASTNode** + %775 = load %struct.ASTNode*, %struct.ASTNode** %774, align 8 + %776 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %777 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %776, i64 -5 + %778 = bitcast %union.YYSTYPE* %777 to i8** + %779 = load i8*, i8** %778, align 8 + %780 = call %struct.ASTNode* @new_node(i32 noundef 8, %struct.ASTNode* noundef %771, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %775, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %779, i32 noundef 40) + %781 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %780, %struct.ASTNode** %781, align 8 + br label %1246 + +782: ; preds = %339 + %783 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %784 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %783, i64 0 + %785 = bitcast %union.YYSTYPE* %784 to %struct.ASTNode** + %786 = load %struct.ASTNode*, %struct.ASTNode** %785, align 8 + %787 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %788 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %787, i64 -2 + %789 = bitcast %union.YYSTYPE* %788 to %struct.ASTNode** + %790 = load %struct.ASTNode*, %struct.ASTNode** %789, align 8 + %791 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %792 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %791, i64 -5 + %793 = bitcast %union.YYSTYPE* %792 to i8** + %794 = load i8*, i8** %793, align 8 + %795 = call %struct.ASTNode* @new_node(i32 noundef 8, %struct.ASTNode* noundef %786, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %790, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %794, i32 noundef 39) + %796 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %795, %struct.ASTNode** %796, align 8 + br label %1246 + +797: ; preds = %339 + %798 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %799 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %798, i64 -1 + %800 = bitcast %union.YYSTYPE* %799 to %struct.ASTNode** + %801 = load %struct.ASTNode*, %struct.ASTNode** %800, align 8 + %802 = call %struct.ASTNode* @new_node(i32 noundef 11, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %801, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %803 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %802, %struct.ASTNode** %803, align 8 + br label %1246 + +804: ; preds = %339 + %805 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* null, %struct.ASTNode** %805, align 8 + br label %1246 + +806: ; preds = %339 + %807 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %808 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %807, i64 0 + %809 = bitcast %union.YYSTYPE* %808 to %struct.ASTNode** + %810 = load %struct.ASTNode*, %struct.ASTNode** %809, align 8 + %811 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %812 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %811, i64 -1 + %813 = bitcast %union.YYSTYPE* %812 to %struct.ASTNode** + %814 = load %struct.ASTNode*, %struct.ASTNode** %813, align 8 + %815 = call %struct.ASTNode* @new_node(i32 noundef 12, %struct.ASTNode* noundef %810, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %814, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %816 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %815, %struct.ASTNode** %816, align 8 + br label %1246 + +817: ; preds = %339 + %818 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %819 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %818, i64 0 + %820 = bitcast %union.YYSTYPE* %819 to %struct.ASTNode** + %821 = load %struct.ASTNode*, %struct.ASTNode** %820, align 8 + %822 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %823 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %822, i64 -1 + %824 = bitcast %union.YYSTYPE* %823 to %struct.ASTNode** + %825 = load %struct.ASTNode*, %struct.ASTNode** %824, align 8 + %826 = call %struct.ASTNode* @new_node(i32 noundef 12, %struct.ASTNode* noundef %821, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %825, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %827 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %826, %struct.ASTNode** %827, align 8 + br label %1246 + +828: ; preds = %339 + %829 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %830 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %829, i64 0 + %831 = bitcast %union.YYSTYPE* %830 to %struct.ASTNode** + %832 = load %struct.ASTNode*, %struct.ASTNode** %831, align 8 + %833 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %834 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %833, i64 -1 + %835 = bitcast %union.YYSTYPE* %834 to %struct.ASTNode** + %836 = load %struct.ASTNode*, %struct.ASTNode** %835, align 8 + %837 = call %struct.ASTNode* @new_node(i32 noundef 12, %struct.ASTNode* noundef %832, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %836, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %838 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %837, %struct.ASTNode** %838, align 8 + br label %1246 + +839: ; preds = %339 + %840 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %841 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %840, i64 -3 + %842 = bitcast %union.YYSTYPE* %841 to %struct.ASTNode** + %843 = load %struct.ASTNode*, %struct.ASTNode** %842, align 8 + %844 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %845 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %844, i64 -1 + %846 = bitcast %union.YYSTYPE* %845 to %struct.ASTNode** + %847 = load %struct.ASTNode*, %struct.ASTNode** %846, align 8 + %848 = call %struct.ASTNode* @new_node(i32 noundef 13, %struct.ASTNode* noundef %843, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %847, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %849 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %848, %struct.ASTNode** %849, align 8 + br label %1246 + +850: ; preds = %339 + %851 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %852 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %851, i64 -1 + %853 = bitcast %union.YYSTYPE* %852 to %struct.ASTNode** + %854 = load %struct.ASTNode*, %struct.ASTNode** %853, align 8 + %855 = call %struct.ASTNode* @new_node(i32 noundef 13, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %854, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %856 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %855, %struct.ASTNode** %856, align 8 + br label %1246 + +857: ; preds = %339 + %858 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* null, %struct.ASTNode** %858, align 8 + br label %1246 + +859: ; preds = %339 + %860 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %861 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %860, i64 0 + %862 = bitcast %union.YYSTYPE* %861 to %struct.ASTNode** + %863 = load %struct.ASTNode*, %struct.ASTNode** %862, align 8 + %864 = call %struct.ASTNode* @new_node(i32 noundef 13, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %863, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %865 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %864, %struct.ASTNode** %865, align 8 + br label %1246 + +866: ; preds = %339 + %867 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %868 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %867, i64 -2 + %869 = bitcast %union.YYSTYPE* %868 to %struct.ASTNode** + %870 = load %struct.ASTNode*, %struct.ASTNode** %869, align 8 + %871 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %872 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %871, i64 0 + %873 = bitcast %union.YYSTYPE* %872 to %struct.ASTNode** + %874 = load %struct.ASTNode*, %struct.ASTNode** %873, align 8 + %875 = call %struct.ASTNode* @new_node(i32 noundef 13, %struct.ASTNode* noundef %870, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %874, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %876 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %875, %struct.ASTNode** %876, align 8 + br label %1246 + +877: ; preds = %339 + %878 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %879 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %878, i64 -4 + %880 = bitcast %union.YYSTYPE* %879 to %struct.ASTNode** + %881 = load %struct.ASTNode*, %struct.ASTNode** %880, align 8 + %882 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %883 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %882, i64 0 + %884 = bitcast %union.YYSTYPE* %883 to %struct.ASTNode** + %885 = load %struct.ASTNode*, %struct.ASTNode** %884, align 8 + %886 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %887 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %886, i64 -2 + %888 = bitcast %union.YYSTYPE* %887 to %struct.ASTNode** + %889 = load %struct.ASTNode*, %struct.ASTNode** %888, align 8 + %890 = call %struct.ASTNode* @new_node(i32 noundef 13, %struct.ASTNode* noundef %881, %struct.ASTNode* noundef %885, %struct.ASTNode* noundef %889, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %891 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %890, %struct.ASTNode** %891, align 8 + br label %1246 + +892: ; preds = %339 + %893 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %894 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %893, i64 -2 + %895 = bitcast %union.YYSTYPE* %894 to %struct.ASTNode** + %896 = load %struct.ASTNode*, %struct.ASTNode** %895, align 8 + %897 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %898 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %897, i64 0 + %899 = bitcast %union.YYSTYPE* %898 to %struct.ASTNode** + %900 = load %struct.ASTNode*, %struct.ASTNode** %899, align 8 + %901 = call %struct.ASTNode* @new_node(i32 noundef 13, %struct.ASTNode* noundef %896, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %900, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %902 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %901, %struct.ASTNode** %902, align 8 + br label %1246 + +903: ; preds = %339 + %904 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* null, %struct.ASTNode** %904, align 8 + br label %1246 + +905: ; preds = %339 + %906 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* null, %struct.ASTNode** %906, align 8 + br label %1246 + +907: ; preds = %339 + %908 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* null, %struct.ASTNode** %908, align 8 + br label %1246 + +909: ; preds = %339 + %910 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %911 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %910, i64 -1 + %912 = bitcast %union.YYSTYPE* %911 to %struct.ASTNode** + %913 = load %struct.ASTNode*, %struct.ASTNode** %912, align 8 + %914 = call %struct.ASTNode* @new_node(i32 noundef 13, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %913, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %915 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %914, %struct.ASTNode** %915, align 8 + br label %1246 + +916: ; preds = %339 + %917 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %918 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %917, i64 0 + %919 = bitcast %union.YYSTYPE* %918 to %struct.ASTNode** + %920 = load %struct.ASTNode*, %struct.ASTNode** %919, align 8 + %921 = call %struct.ASTNode* @new_node(i32 noundef 10, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %920, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %922 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %921, %struct.ASTNode** %922, align 8 + br label %1246 + +923: ; preds = %339 + %924 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %925 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %924, i64 0 + %926 = bitcast %union.YYSTYPE* %925 to %struct.ASTNode** + %927 = load %struct.ASTNode*, %struct.ASTNode** %926, align 8 + %928 = call %struct.ASTNode* @new_node(i32 noundef 36, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %927, i32 noundef 283, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %929 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %928, %struct.ASTNode** %929, align 8 + br label %1246 + +930: ; preds = %339 + %931 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %932 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %931, i64 0 + %933 = bitcast %union.YYSTYPE* %932 to %struct.ASTNode** + %934 = load %struct.ASTNode*, %struct.ASTNode** %933, align 8 + %935 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %936 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %935, i64 -2 + %937 = bitcast %union.YYSTYPE* %936 to %struct.ASTNode** + %938 = load %struct.ASTNode*, %struct.ASTNode** %937, align 8 + %939 = call %struct.ASTNode* @new_node(i32 noundef 36, %struct.ASTNode* noundef %934, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %938, i32 noundef 282, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %940 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %939, %struct.ASTNode** %940, align 8 + br label %1246 + +941: ; preds = %339 + %942 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %943 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %942, i64 0 + %944 = bitcast %union.YYSTYPE* %943 to %struct.ASTNode** + %945 = load %struct.ASTNode*, %struct.ASTNode** %944, align 8 + %946 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %947 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %946, i64 -2 + %948 = bitcast %union.YYSTYPE* %947 to %struct.ASTNode** + %949 = load %struct.ASTNode*, %struct.ASTNode** %948, align 8 + %950 = call %struct.ASTNode* @new_node(i32 noundef 36, %struct.ASTNode* noundef %945, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %949, i32 noundef 279, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %951 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %950, %struct.ASTNode** %951, align 8 + br label %1246 + +952: ; preds = %339 + %953 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %954 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %953, i64 0 + %955 = bitcast %union.YYSTYPE* %954 to %struct.ASTNode** + %956 = load %struct.ASTNode*, %struct.ASTNode** %955, align 8 + %957 = call %struct.ASTNode* @new_node(i32 noundef 19, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %956, i32 noundef 16, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %958 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %957, %struct.ASTNode** %958, align 8 + br label %1246 + +959: ; preds = %339 + %960 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %961 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %960, i64 0 + %962 = bitcast %union.YYSTYPE* %961 to %struct.ASTNode** + %963 = load %struct.ASTNode*, %struct.ASTNode** %962, align 8 + %964 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %965 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %964, i64 -2 + %966 = bitcast %union.YYSTYPE* %965 to %struct.ASTNode** + %967 = load %struct.ASTNode*, %struct.ASTNode** %966, align 8 + %968 = call %struct.ASTNode* @new_node(i32 noundef 19, %struct.ASTNode* noundef %963, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %967, i32 noundef 283, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %969 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %968, %struct.ASTNode** %969, align 8 + br label %1246 + +970: ; preds = %339 + %971 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %972 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %971, i64 0 + %973 = bitcast %union.YYSTYPE* %972 to %struct.ASTNode** + %974 = load %struct.ASTNode*, %struct.ASTNode** %973, align 8 + %975 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %976 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %975, i64 -2 + %977 = bitcast %union.YYSTYPE* %976 to %struct.ASTNode** + %978 = load %struct.ASTNode*, %struct.ASTNode** %977, align 8 + %979 = call %struct.ASTNode* @new_node(i32 noundef 19, %struct.ASTNode* noundef %974, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %978, i32 noundef 284, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %980 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %979, %struct.ASTNode** %980, align 8 + br label %1246 + +981: ; preds = %339 + %982 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %983 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %982, i64 0 + %984 = bitcast %union.YYSTYPE* %983 to %struct.ASTNode** + %985 = load %struct.ASTNode*, %struct.ASTNode** %984, align 8 + %986 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %987 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %986, i64 -2 + %988 = bitcast %union.YYSTYPE* %987 to %struct.ASTNode** + %989 = load %struct.ASTNode*, %struct.ASTNode** %988, align 8 + %990 = call %struct.ASTNode* @new_node(i32 noundef 19, %struct.ASTNode* noundef %985, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %989, i32 noundef 285, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %991 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %990, %struct.ASTNode** %991, align 8 + br label %1246 + +992: ; preds = %339 + %993 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %994 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %993, i64 0 + %995 = bitcast %union.YYSTYPE* %994 to %struct.ASTNode** + %996 = load %struct.ASTNode*, %struct.ASTNode** %995, align 8 + %997 = call %struct.ASTNode* @new_node(i32 noundef 16, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %996, i32 noundef 15, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %998 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %997, %struct.ASTNode** %998, align 8 + br label %1246 + +999: ; preds = %339 + %1000 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1001 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1000, i64 -2 + %1002 = bitcast %union.YYSTYPE* %1001 to i8** + %1003 = load i8*, i8** %1002, align 8 + %1004 = call %struct.ASTNode* @new_node(i32 noundef 16, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, i32 noundef 18, float noundef 0.000000e+00, i8* noundef %1003, i32 noundef 38) + %1005 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1004, %struct.ASTNode** %1005, align 8 + br label %1246 + +1006: ; preds = %339 + %1007 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1008 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1007, i64 -1 + %1009 = bitcast %union.YYSTYPE* %1008 to %struct.ASTNode** + %1010 = load %struct.ASTNode*, %struct.ASTNode** %1009, align 8 + %1011 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1012 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1011, i64 -3 + %1013 = bitcast %union.YYSTYPE* %1012 to i8** + %1014 = load i8*, i8** %1013, align 8 + %1015 = call %struct.ASTNode* @new_node(i32 noundef 16, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1010, i32 noundef 18, float noundef 0.000000e+00, i8* noundef %1014, i32 noundef 38) + %1016 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1015, %struct.ASTNode** %1016, align 8 + br label %1246 + +1017: ; preds = %339 + %1018 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1019 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1018, i64 0 + %1020 = bitcast %union.YYSTYPE* %1019 to %struct.ASTNode** + %1021 = load %struct.ASTNode*, %struct.ASTNode** %1020, align 8 + %1022 = call %struct.ASTNode* @new_node(i32 noundef 16, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1021, i32 noundef 43, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1023 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1022, %struct.ASTNode** %1023, align 8 + br label %1246 + +1024: ; preds = %339 + %1025 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1026 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1025, i64 0 + %1027 = bitcast %union.YYSTYPE* %1026 to %struct.ASTNode** + %1028 = load %struct.ASTNode*, %struct.ASTNode** %1027, align 8 + %1029 = call %struct.ASTNode* @new_node(i32 noundef 16, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1028, i32 noundef 44, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1030 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1029, %struct.ASTNode** %1030, align 8 + br label %1246 + +1031: ; preds = %339 + %1032 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1033 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1032, i64 0 + %1034 = bitcast %union.YYSTYPE* %1033 to %struct.ASTNode** + %1035 = load %struct.ASTNode*, %struct.ASTNode** %1034, align 8 + %1036 = call %struct.ASTNode* @new_node(i32 noundef 16, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1035, i32 noundef 280, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1037 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1036, %struct.ASTNode** %1037, align 8 + br label %1246 + +1038: ; preds = %339 + %1039 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1040 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1039, i64 0 + %1041 = bitcast %union.YYSTYPE* %1040 to %struct.ASTNode** + %1042 = load %struct.ASTNode*, %struct.ASTNode** %1041, align 8 + %1043 = call %struct.ASTNode* @new_node(i32 noundef 18, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1042, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1044 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1043, %struct.ASTNode** %1044, align 8 + br label %1246 + +1045: ; preds = %339 + %1046 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1047 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1046, i64 0 + %1048 = bitcast %union.YYSTYPE* %1047 to %struct.ASTNode** + %1049 = load %struct.ASTNode*, %struct.ASTNode** %1048, align 8 + %1050 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1051 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1050, i64 -2 + %1052 = bitcast %union.YYSTYPE* %1051 to %struct.ASTNode** + %1053 = load %struct.ASTNode*, %struct.ASTNode** %1052, align 8 + %1054 = call %struct.ASTNode* @new_node(i32 noundef 18, %struct.ASTNode* noundef %1049, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1053, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1055 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1054, %struct.ASTNode** %1055, align 8 + br label %1246 + +1056: ; preds = %339 + %1057 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1058 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1057, i64 -1 + %1059 = bitcast %union.YYSTYPE* %1058 to %struct.ASTNode** + %1060 = load %struct.ASTNode*, %struct.ASTNode** %1059, align 8 + %1061 = call %struct.ASTNode* @new_node(i32 noundef 15, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1060, i32 noundef 10, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1062 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1061, %struct.ASTNode** %1062, align 8 + br label %1246 + +1063: ; preds = %339 + %1064 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1065 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1064, i64 0 + %1066 = bitcast %union.YYSTYPE* %1065 to %struct.ASTNode** + %1067 = load %struct.ASTNode*, %struct.ASTNode** %1066, align 8 + %1068 = call %struct.ASTNode* @new_node(i32 noundef 15, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1067, i32 noundef 14, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1069 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1068, %struct.ASTNode** %1069, align 8 + br label %1246 + +1070: ; preds = %339 + %1071 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1072 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1071, i64 0 + %1073 = bitcast %union.YYSTYPE* %1072 to i32* + %1074 = load i32, i32* %1073, align 8 + %1075 = call %struct.ASTNode* @new_node(i32 noundef 15, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, i32 noundef %1074, float noundef 0.000000e+00, i8* noundef null, i32 noundef 40) + %1076 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1075, %struct.ASTNode** %1076, align 8 + br label %1246 + +1077: ; preds = %339 + %1078 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1079 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1078, i64 0 + %1080 = bitcast %union.YYSTYPE* %1079 to float* + %1081 = load float, float* %1080, align 8 + %1082 = call %struct.ASTNode* @new_node(i32 noundef 15, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, i32 noundef 0, float noundef %1081, i8* noundef null, i32 noundef 39) + %1083 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1082, %struct.ASTNode** %1083, align 8 + br label %1246 + +1084: ; preds = %339 + %1085 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1086 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1085, i64 0 + %1087 = bitcast %union.YYSTYPE* %1086 to %struct.ASTNode** + %1088 = load %struct.ASTNode*, %struct.ASTNode** %1087, align 8 + %1089 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1090 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1089, i64 -1 + %1091 = bitcast %union.YYSTYPE* %1090 to i8** + %1092 = load i8*, i8** %1091, align 8 + %1093 = call %struct.ASTNode* @new_node(i32 noundef 14, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1088, i32 noundef 0, float noundef 0.000000e+00, i8* noundef %1092, i32 noundef 38) + %1094 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1093, %struct.ASTNode** %1094, align 8 + br label %1246 + +1095: ; preds = %339 + %1096 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1097 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1096, i64 0 + %1098 = bitcast %union.YYSTYPE* %1097 to %struct.ASTNode** + %1099 = load %struct.ASTNode*, %struct.ASTNode** %1098, align 8 + %1100 = call %struct.ASTNode* @new_node(i32 noundef 24, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1099, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1101 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1100, %struct.ASTNode** %1101, align 8 + br label %1246 + +1102: ; preds = %339 + %1103 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1104 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1103, i64 0 + %1105 = bitcast %union.YYSTYPE* %1104 to %struct.ASTNode** + %1106 = load %struct.ASTNode*, %struct.ASTNode** %1105, align 8 + %1107 = call %struct.ASTNode* @new_node(i32 noundef 24, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1106, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1108 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1107, %struct.ASTNode** %1108, align 8 + br label %1246 + +1109: ; preds = %339 + %1110 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1111 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1110, i64 0 + %1112 = bitcast %union.YYSTYPE* %1111 to %struct.ASTNode** + %1113 = load %struct.ASTNode*, %struct.ASTNode** %1112, align 8 + %1114 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1115 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1114, i64 -2 + %1116 = bitcast %union.YYSTYPE* %1115 to %struct.ASTNode** + %1117 = load %struct.ASTNode*, %struct.ASTNode** %1116, align 8 + %1118 = call %struct.ASTNode* @new_node(i32 noundef 24, %struct.ASTNode* noundef %1113, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1117, i32 noundef 287, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1119 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1118, %struct.ASTNode** %1119, align 8 + br label %1246 + +1120: ; preds = %339 + %1121 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1122 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1121, i64 0 + %1123 = bitcast %union.YYSTYPE* %1122 to %struct.ASTNode** + %1124 = load %struct.ASTNode*, %struct.ASTNode** %1123, align 8 + %1125 = call %struct.ASTNode* @new_node(i32 noundef 24, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1124, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1126 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1125, %struct.ASTNode** %1126, align 8 + br label %1246 + +1127: ; preds = %339 + %1128 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1129 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1128, i64 0 + %1130 = bitcast %union.YYSTYPE* %1129 to %struct.ASTNode** + %1131 = load %struct.ASTNode*, %struct.ASTNode** %1130, align 8 + %1132 = call %struct.ASTNode* @new_node(i32 noundef 22, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1131, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1133 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1132, %struct.ASTNode** %1133, align 8 + br label %1246 + +1134: ; preds = %339 + %1135 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1136 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1135, i64 0 + %1137 = bitcast %union.YYSTYPE* %1136 to %struct.ASTNode** + %1138 = load %struct.ASTNode*, %struct.ASTNode** %1137, align 8 + %1139 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1140 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1139, i64 -2 + %1141 = bitcast %union.YYSTYPE* %1140 to %struct.ASTNode** + %1142 = load %struct.ASTNode*, %struct.ASTNode** %1141, align 8 + %1143 = call %struct.ASTNode* @new_node(i32 noundef 22, %struct.ASTNode* noundef %1138, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1142, i32 noundef 286, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1144 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1143, %struct.ASTNode** %1144, align 8 + br label %1246 + +1145: ; preds = %339 + %1146 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1147 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1146, i64 -1 + %1148 = bitcast %union.YYSTYPE* %1147 to %struct.ASTNode** + %1149 = load %struct.ASTNode*, %struct.ASTNode** %1148, align 8 + %1150 = call %struct.ASTNode* @new_node(i32 noundef 23, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1149, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1151 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1150, %struct.ASTNode** %1151, align 8 + br label %1246 + +1152: ; preds = %339 + %1153 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1154 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1153, i64 0 + %1155 = bitcast %union.YYSTYPE* %1154 to %struct.ASTNode** + %1156 = load %struct.ASTNode*, %struct.ASTNode** %1155, align 8 + %1157 = call %struct.ASTNode* @new_node(i32 noundef 21, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1156, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1158 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1157, %struct.ASTNode** %1158, align 8 + br label %1246 + +1159: ; preds = %339 + %1160 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1161 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1160, i64 0 + %1162 = bitcast %union.YYSTYPE* %1161 to %struct.ASTNode** + %1163 = load %struct.ASTNode*, %struct.ASTNode** %1162, align 8 + %1164 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1165 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1164, i64 -2 + %1166 = bitcast %union.YYSTYPE* %1165 to %struct.ASTNode** + %1167 = load %struct.ASTNode*, %struct.ASTNode** %1166, align 8 + %1168 = call %struct.ASTNode* @new_node(i32 noundef 21, %struct.ASTNode* noundef %1163, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1167, i32 noundef 288, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1169 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1168, %struct.ASTNode** %1169, align 8 + br label %1246 + +1170: ; preds = %339 + %1171 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1172 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1171, i64 0 + %1173 = bitcast %union.YYSTYPE* %1172 to %struct.ASTNode** + %1174 = load %struct.ASTNode*, %struct.ASTNode** %1173, align 8 + %1175 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1176 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1175, i64 -2 + %1177 = bitcast %union.YYSTYPE* %1176 to %struct.ASTNode** + %1178 = load %struct.ASTNode*, %struct.ASTNode** %1177, align 8 + %1179 = call %struct.ASTNode* @new_node(i32 noundef 21, %struct.ASTNode* noundef %1174, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1178, i32 noundef 289, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1180 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1179, %struct.ASTNode** %1180, align 8 + br label %1246 + +1181: ; preds = %339 + %1182 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1183 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1182, i64 0 + %1184 = bitcast %union.YYSTYPE* %1183 to %struct.ASTNode** + %1185 = load %struct.ASTNode*, %struct.ASTNode** %1184, align 8 + %1186 = call %struct.ASTNode* @new_node(i32 noundef 20, %struct.ASTNode* noundef null, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1185, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1187 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1186, %struct.ASTNode** %1187, align 8 + br label %1246 + +1188: ; preds = %339 + %1189 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1190 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1189, i64 0 + %1191 = bitcast %union.YYSTYPE* %1190 to %struct.ASTNode** + %1192 = load %struct.ASTNode*, %struct.ASTNode** %1191, align 8 + %1193 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1194 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1193, i64 -2 + %1195 = bitcast %union.YYSTYPE* %1194 to %struct.ASTNode** + %1196 = load %struct.ASTNode*, %struct.ASTNode** %1195, align 8 + %1197 = call %struct.ASTNode* @new_node(i32 noundef 20, %struct.ASTNode* noundef %1192, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1196, i32 noundef 290, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1198 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1197, %struct.ASTNode** %1198, align 8 + br label %1246 + +1199: ; preds = %339 + %1200 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1201 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1200, i64 0 + %1202 = bitcast %union.YYSTYPE* %1201 to %struct.ASTNode** + %1203 = load %struct.ASTNode*, %struct.ASTNode** %1202, align 8 + %1204 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1205 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1204, i64 -2 + %1206 = bitcast %union.YYSTYPE* %1205 to %struct.ASTNode** + %1207 = load %struct.ASTNode*, %struct.ASTNode** %1206, align 8 + %1208 = call %struct.ASTNode* @new_node(i32 noundef 20, %struct.ASTNode* noundef %1203, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1207, i32 noundef 292, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1209 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1208, %struct.ASTNode** %1209, align 8 + br label %1246 + +1210: ; preds = %339 + %1211 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1212 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1211, i64 0 + %1213 = bitcast %union.YYSTYPE* %1212 to %struct.ASTNode** + %1214 = load %struct.ASTNode*, %struct.ASTNode** %1213, align 8 + %1215 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1216 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1215, i64 -2 + %1217 = bitcast %union.YYSTYPE* %1216 to %struct.ASTNode** + %1218 = load %struct.ASTNode*, %struct.ASTNode** %1217, align 8 + %1219 = call %struct.ASTNode* @new_node(i32 noundef 20, %struct.ASTNode* noundef %1214, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1218, i32 noundef 291, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1220 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1219, %struct.ASTNode** %1220, align 8 + br label %1246 + +1221: ; preds = %339 + %1222 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1223 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1222, i64 0 + %1224 = bitcast %union.YYSTYPE* %1223 to %struct.ASTNode** + %1225 = load %struct.ASTNode*, %struct.ASTNode** %1224, align 8 + %1226 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1227 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1226, i64 -2 + %1228 = bitcast %union.YYSTYPE* %1227 to %struct.ASTNode** + %1229 = load %struct.ASTNode*, %struct.ASTNode** %1228, align 8 + %1230 = call %struct.ASTNode* @new_node(i32 noundef 20, %struct.ASTNode* noundef %1225, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1229, i32 noundef 293, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1231 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1230, %struct.ASTNode** %1231, align 8 + br label %1246 + +1232: ; preds = %339 + %1233 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* null, %struct.ASTNode** %1233, align 8 + br label %1246 + +1234: ; preds = %339 + %1235 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1236 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1235, i64 0 + %1237 = bitcast %union.YYSTYPE* %1236 to %struct.ASTNode** + %1238 = load %struct.ASTNode*, %struct.ASTNode** %1237, align 8 + %1239 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1240 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1239, i64 -2 + %1241 = bitcast %union.YYSTYPE* %1240 to %struct.ASTNode** + %1242 = load %struct.ASTNode*, %struct.ASTNode** %1241, align 8 + %1243 = call %struct.ASTNode* @new_node(i32 noundef 9, %struct.ASTNode* noundef %1238, %struct.ASTNode* noundef null, %struct.ASTNode* noundef %1242, i32 noundef 0, float noundef 0.000000e+00, i8* noundef null, i32 noundef 38) + %1244 = bitcast %union.YYSTYPE* %16 to %struct.ASTNode** + store %struct.ASTNode* %1243, %struct.ASTNode** %1244, align 8 + br label %1246 + +1245: ; preds = %339 + br label %1246 + +1246: ; preds = %1245, %1234, %1232, %1221, %1210, %1199, %1188, %1181, %1170, %1159, %1152, %1145, %1134, %1127, %1120, %1109, %1102, %1095, %1084, %1077, %1070, %1063, %1056, %1045, %1038, %1031, %1024, %1017, %1006, %999, %992, %981, %970, %959, %952, %941, %930, %923, %916, %909, %907, %905, %903, %892, %877, %866, %859, %857, %850, %839, %828, %817, %806, %804, %797, %782, %767, %756, %745, %734, %723, %716, %709, %694, %679, %664, %653, %642, %631, %620, %613, %606, %603, %596, %577, %562, %547, %536, %529, %522, %511, %500, %493, %482, %475, %472, %465, %454, %452, %433, %418, %411, %404, %393, %382, %371, %364, %357, %350, %344 + %1247 = load i32, i32* %22, align 4 + %1248 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1249 = sext i32 %1247 to i64 + %1250 = sub i64 0, %1249 + %1251 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1248, i64 %1250 + store %union.YYSTYPE* %1251, %union.YYSTYPE** %9, align 8 + %1252 = load i32, i32* %22, align 4 + %1253 = load i8*, i8** %6, align 8 + %1254 = sext i32 %1252 to i64 + %1255 = sub i64 0, %1254 + %1256 = getelementptr inbounds i8, i8* %1253, i64 %1255 + store i8* %1256, i8** %6, align 8 + %1257 = load i32, i32* %22, align 4 + %1258 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %1259 = sext i32 %1257 to i64 + %1260 = sub i64 0, %1259 + %1261 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1258, i64 %1260 + store %struct.YYLTYPE* %1261, %struct.YYLTYPE** %12, align 8 + store i32 0, i32* %22, align 4 + %1262 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1263 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1262, i32 1 + store %union.YYSTYPE* %1263, %union.YYSTYPE** %9, align 8 + %1264 = bitcast %union.YYSTYPE* %1263 to i8* + %1265 = bitcast %union.YYSTYPE* %16 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %1264, i8* align 8 %1265, i64 8, i1 false) + %1266 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %1267 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1266, i32 1 + store %struct.YYLTYPE* %1267, %struct.YYLTYPE** %12, align 8 + %1268 = bitcast %struct.YYLTYPE* %1267 to i8* + %1269 = bitcast %struct.YYLTYPE* %17 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %1268, i8* align 4 %1269, i64 16, i1 false) + %1270 = load i32, i32* %13, align 4 + %1271 = sext i32 %1270 to i64 + %1272 = getelementptr inbounds [101 x i8], [101 x i8]* @yyr1, i64 0, i64 %1271 + %1273 = load i8, i8* %1272, align 1 + %1274 = sext i8 %1273 to i32 + %1275 = sub nsw i32 %1274, 41 + store i32 %1275, i32* %29, align 4 + %1276 = load i32, i32* %29, align 4 + %1277 = sext i32 %1276 to i64 + %1278 = getelementptr inbounds [31 x i16], [31 x i16]* @yypgoto, i64 0, i64 %1277 + %1279 = load i16, i16* %1278, align 2 + %1280 = sext i16 %1279 to i32 + %1281 = load i8*, i8** %6, align 8 + %1282 = load i8, i8* %1281, align 1 + %1283 = zext i8 %1282 to i32 + %1284 = add nsw i32 %1280, %1283 + store i32 %1284, i32* %30, align 4 + %1285 = load i32, i32* %30, align 4 + %1286 = icmp sle i32 0, %1285 + br i1 %1286, label %1287, label %1306 + +1287: ; preds = %1246 + %1288 = load i32, i32* %30, align 4 + %1289 = icmp sle i32 %1288, 301 + br i1 %1289, label %1290, label %1306 + +1290: ; preds = %1287 + %1291 = load i32, i32* %30, align 4 + %1292 = sext i32 %1291 to i64 + %1293 = getelementptr inbounds [302 x i16], [302 x i16]* @yycheck, i64 0, i64 %1292 + %1294 = load i16, i16* %1293, align 2 + %1295 = sext i16 %1294 to i32 + %1296 = load i8*, i8** %6, align 8 + %1297 = load i8, i8* %1296, align 1 + %1298 = zext i8 %1297 to i32 + %1299 = icmp eq i32 %1295, %1298 + br i1 %1299, label %1300, label %1306 + +1300: ; preds = %1290 + %1301 = load i32, i32* %30, align 4 + %1302 = sext i32 %1301 to i64 + %1303 = getelementptr inbounds [302 x i16], [302 x i16]* @yytable, i64 0, i64 %1302 + %1304 = load i16, i16* %1303, align 2 + %1305 = sext i16 %1304 to i32 + br label %1312 + +1306: ; preds = %1290, %1287, %1246 + %1307 = load i32, i32* %29, align 4 + %1308 = sext i32 %1307 to i64 + %1309 = getelementptr inbounds [31 x i8], [31 x i8]* @yydefgoto, i64 0, i64 %1308 + %1310 = load i8, i8* %1309, align 1 + %1311 = zext i8 %1310 to i32 + br label %1312 + +1312: ; preds = %1306, %1300 + %1313 = phi i32 [ %1305, %1300 ], [ %1311, %1306 ] + store i32 %1313, i32* %1, align 4 + br label %44 + +1314: ; preds = %258 + %1315 = load i32, i32* @yychar, align 4 + %1316 = icmp eq i32 %1315, -2 + br i1 %1316, label %1317, label %1318 + +1317: ; preds = %1314 + br label %1333 + +1318: ; preds = %1314 + %1319 = load i32, i32* @yychar, align 4 + %1320 = icmp sle i32 0, %1319 + br i1 %1320, label %1321, label %1330 + +1321: ; preds = %1318 + %1322 = load i32, i32* @yychar, align 4 + %1323 = icmp sle i32 %1322, 295 + br i1 %1323, label %1324, label %1330 + +1324: ; preds = %1321 + %1325 = load i32, i32* @yychar, align 4 + %1326 = sext i32 %1325 to i64 + %1327 = getelementptr inbounds [296 x i8], [296 x i8]* @yytranslate, i64 0, i64 %1326 + %1328 = load i8, i8* %1327, align 1 + %1329 = sext i8 %1328 to i32 + br label %1331 + +1330: ; preds = %1321, %1318 + br label %1331 + +1331: ; preds = %1330, %1324 + %1332 = phi i32 [ %1329, %1324 ], [ 2, %1330 ] + br label %1333 + +1333: ; preds = %1331, %1317 + %1334 = phi i32 [ -2, %1317 ], [ %1332, %1331 ] + store i32 %1334, i32* %15, align 4 + %1335 = load i32, i32* %2, align 4 + %1336 = icmp ne i32 %1335, 0 + br i1 %1336, label %1377, label %1337 + +1337: ; preds = %1333 + %1338 = load i32, i32* @yynerrs, align 4 + %1339 = add nsw i32 %1338, 1 + store i32 %1339, i32* @yynerrs, align 4 + %1340 = getelementptr inbounds %struct.yypcontext_t, %struct.yypcontext_t* %31, i32 0, i32 0 + %1341 = load i8*, i8** %6, align 8 + store i8* %1341, i8** %1340, align 8 + %1342 = getelementptr inbounds %struct.yypcontext_t, %struct.yypcontext_t* %31, i32 0, i32 1 + %1343 = load i32, i32* %15, align 4 + store i32 %1343, i32* %1342, align 8 + %1344 = getelementptr inbounds %struct.yypcontext_t, %struct.yypcontext_t* %31, i32 0, i32 2 + store %struct.YYLTYPE* @yylloc, %struct.YYLTYPE** %1344, align 8 + store i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i64 0, i64 0), i8** %32, align 8 + %1345 = call i32 @yysyntax_error(i64* noundef %21, i8** noundef %20, %struct.yypcontext_t* noundef %31) + store i32 %1345, i32* %33, align 4 + %1346 = load i32, i32* %33, align 4 + %1347 = icmp eq i32 %1346, 0 + br i1 %1347, label %1348, label %1350 + +1348: ; preds = %1337 + %1349 = load i8*, i8** %20, align 8 + store i8* %1349, i8** %32, align 8 + br label %1371 + +1350: ; preds = %1337 + %1351 = load i32, i32* %33, align 4 + %1352 = icmp eq i32 %1351, -1 + br i1 %1352, label %1353, label %1370 + +1353: ; preds = %1350 + %1354 = load i8*, i8** %20, align 8 + %1355 = getelementptr inbounds [128 x i8], [128 x i8]* %19, i64 0, i64 0 + %1356 = icmp ne i8* %1354, %1355 + br i1 %1356, label %1357, label %1359 + +1357: ; preds = %1353 + %1358 = load i8*, i8** %20, align 8 + call void @free(i8* noundef %1358) #6 + br label %1359 + +1359: ; preds = %1357, %1353 + %1360 = load i64, i64* %21, align 8 + %1361 = call noalias i8* @malloc(i64 noundef %1360) #6 + store i8* %1361, i8** %20, align 8 + %1362 = load i8*, i8** %20, align 8 + %1363 = icmp ne i8* %1362, null + br i1 %1363, label %1364, label %1367 + +1364: ; preds = %1359 + %1365 = call i32 @yysyntax_error(i64* noundef %21, i8** noundef %20, %struct.yypcontext_t* noundef %31) + store i32 %1365, i32* %33, align 4 + %1366 = load i8*, i8** %20, align 8 + store i8* %1366, i8** %32, align 8 + br label %1369 + +1367: ; preds = %1359 + %1368 = getelementptr inbounds [128 x i8], [128 x i8]* %19, i64 0, i64 0 + store i8* %1368, i8** %20, align 8 + store i64 128, i64* %21, align 8 + store i32 -2, i32* %33, align 4 + br label %1369 + +1369: ; preds = %1367, %1364 + br label %1370 + +1370: ; preds = %1369, %1350 + br label %1371 + +1371: ; preds = %1370, %1348 + %1372 = load i8*, i8** %32, align 8 + call void (i8*, ...) @yyerror(i8* noundef %1372) + %1373 = load i32, i32* %33, align 4 + %1374 = icmp eq i32 %1373, -2 + br i1 %1374, label %1375, label %1376 + +1375: ; preds = %1371 + br label %1509 + +1376: ; preds = %1371 + br label %1377 + +1377: ; preds = %1376, %1333 + %1378 = getelementptr inbounds [3 x %struct.YYLTYPE], [3 x %struct.YYLTYPE]* %18, i64 0, i64 1 + %1379 = bitcast %struct.YYLTYPE* %1378 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %1379, i8* align 4 bitcast (%struct.YYLTYPE* @yylloc to i8*), i64 16, i1 false) + %1380 = load i32, i32* %2, align 4 + %1381 = icmp eq i32 %1380, 3 + br i1 %1381, label %1382, label %1393 + +1382: ; preds = %1377 + %1383 = load i32, i32* @yychar, align 4 + %1384 = icmp sle i32 %1383, 0 + br i1 %1384, label %1385, label %1390 + +1385: ; preds = %1382 + %1386 = load i32, i32* @yychar, align 4 + %1387 = icmp eq i32 %1386, 0 + br i1 %1387, label %1388, label %1389 + +1388: ; preds = %1385 + br label %1508 + +1389: ; preds = %1385 + br label %1392 + +1390: ; preds = %1382 + %1391 = load i32, i32* %15, align 4 + call void @yydestruct(i8* noundef getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0), i32 noundef %1391, %union.YYSTYPE* noundef @yylval, %struct.YYLTYPE* noundef @yylloc) + store i32 -2, i32* @yychar, align 4 + br label %1392 + +1392: ; preds = %1390, %1389 + br label %1393 + +1393: ; preds = %1392, %1377 + br label %1415 + +1394: ; No predecessors! + %1395 = load i32, i32* @yynerrs, align 4 + %1396 = add nsw i32 %1395, 1 + store i32 %1396, i32* @yynerrs, align 4 + %1397 = load i32, i32* %22, align 4 + %1398 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1399 = sext i32 %1397 to i64 + %1400 = sub i64 0, %1399 + %1401 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1398, i64 %1400 + store %union.YYSTYPE* %1401, %union.YYSTYPE** %9, align 8 + %1402 = load i32, i32* %22, align 4 + %1403 = load i8*, i8** %6, align 8 + %1404 = sext i32 %1402 to i64 + %1405 = sub i64 0, %1404 + %1406 = getelementptr inbounds i8, i8* %1403, i64 %1405 + store i8* %1406, i8** %6, align 8 + %1407 = load i32, i32* %22, align 4 + %1408 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %1409 = sext i32 %1407 to i64 + %1410 = sub i64 0, %1409 + %1411 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1408, i64 %1410 + store %struct.YYLTYPE* %1411, %struct.YYLTYPE** %12, align 8 + store i32 0, i32* %22, align 4 + %1412 = load i8*, i8** %6, align 8 + %1413 = load i8, i8* %1412, align 1 + %1414 = zext i8 %1413 to i32 + store i32 %1414, i32* %1, align 4 + br label %1415 + +1415: ; preds = %1394, %1393, %188 + store i32 3, i32* %2, align 4 + br label %1416 + +1416: ; preds = %1455, %1415 + %1417 = load i32, i32* %1, align 4 + %1418 = sext i32 %1417 to i64 + %1419 = getelementptr inbounds [207 x i16], [207 x i16]* @yypact, i64 0, i64 %1418 + %1420 = load i16, i16* %1419, align 2 + %1421 = sext i16 %1420 to i32 + store i32 %1421, i32* %13, align 4 + %1422 = load i32, i32* %13, align 4 + %1423 = icmp eq i32 %1422, -167 + br i1 %1423, label %1450, label %1424 + +1424: ; preds = %1416 + %1425 = load i32, i32* %13, align 4 + %1426 = add nsw i32 %1425, 1 + store i32 %1426, i32* %13, align 4 + %1427 = load i32, i32* %13, align 4 + %1428 = icmp sle i32 0, %1427 + br i1 %1428, label %1429, label %1449 + +1429: ; preds = %1424 + %1430 = load i32, i32* %13, align 4 + %1431 = icmp sle i32 %1430, 301 + br i1 %1431, label %1432, label %1449 + +1432: ; preds = %1429 + %1433 = load i32, i32* %13, align 4 + %1434 = sext i32 %1433 to i64 + %1435 = getelementptr inbounds [302 x i16], [302 x i16]* @yycheck, i64 0, i64 %1434 + %1436 = load i16, i16* %1435, align 2 + %1437 = sext i16 %1436 to i32 + %1438 = icmp eq i32 %1437, 1 + br i1 %1438, label %1439, label %1449 + +1439: ; preds = %1432 + %1440 = load i32, i32* %13, align 4 + %1441 = sext i32 %1440 to i64 + %1442 = getelementptr inbounds [302 x i16], [302 x i16]* @yytable, i64 0, i64 %1441 + %1443 = load i16, i16* %1442, align 2 + %1444 = sext i16 %1443 to i32 + store i32 %1444, i32* %13, align 4 + %1445 = load i32, i32* %13, align 4 + %1446 = icmp slt i32 0, %1445 + br i1 %1446, label %1447, label %1448 + +1447: ; preds = %1439 + br label %1476 + +1448: ; preds = %1439 + br label %1449 + +1449: ; preds = %1448, %1432, %1429, %1424 + br label %1450 + +1450: ; preds = %1449, %1416 + %1451 = load i8*, i8** %6, align 8 + %1452 = load i8*, i8** %5, align 8 + %1453 = icmp eq i8* %1451, %1452 + br i1 %1453, label %1454, label %1455 + +1454: ; preds = %1450 + br label %1508 + +1455: ; preds = %1450 + %1456 = getelementptr inbounds [3 x %struct.YYLTYPE], [3 x %struct.YYLTYPE]* %18, i64 0, i64 1 + %1457 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %1458 = bitcast %struct.YYLTYPE* %1456 to i8* + %1459 = bitcast %struct.YYLTYPE* %1457 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %1458, i8* align 4 %1459, i64 16, i1 false) + %1460 = load i32, i32* %1, align 4 + %1461 = sext i32 %1460 to i64 + %1462 = getelementptr inbounds [207 x i8], [207 x i8]* @yystos, i64 0, i64 %1461 + %1463 = load i8, i8* %1462, align 1 + %1464 = sext i8 %1463 to i32 + %1465 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1466 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + call void @yydestruct(i8* noundef getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0), i32 noundef %1464, %union.YYSTYPE* noundef %1465, %struct.YYLTYPE* noundef %1466) + %1467 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1468 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1467, i64 -1 + store %union.YYSTYPE* %1468, %union.YYSTYPE** %9, align 8 + %1469 = load i8*, i8** %6, align 8 + %1470 = getelementptr inbounds i8, i8* %1469, i64 -1 + store i8* %1470, i8** %6, align 8 + %1471 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %1472 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1471, i64 -1 + store %struct.YYLTYPE* %1472, %struct.YYLTYPE** %12, align 8 + %1473 = load i8*, i8** %6, align 8 + %1474 = load i8, i8* %1473, align 1 + %1475 = zext i8 %1474 to i32 + store i32 %1475, i32* %1, align 4 + br label %1416 + +1476: ; preds = %1447 + %1477 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1478 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1477, i32 1 + store %union.YYSTYPE* %1478, %union.YYSTYPE** %9, align 8 + %1479 = bitcast %union.YYSTYPE* %1478 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %1479, i8* align 8 bitcast (%union.YYSTYPE* @yylval to i8*), i64 8, i1 false) + %1480 = getelementptr inbounds [3 x %struct.YYLTYPE], [3 x %struct.YYLTYPE]* %18, i64 0, i64 2 + %1481 = bitcast %struct.YYLTYPE* %1480 to i8* + call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %1481, i8* align 4 bitcast (%struct.YYLTYPE* @yylloc to i8*), i64 16, i1 false) + %1482 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %1483 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1482, i32 1 + store %struct.YYLTYPE* %1483, %struct.YYLTYPE** %12, align 8 + br label %1484 + +1484: ; preds = %1476 + %1485 = getelementptr inbounds [3 x %struct.YYLTYPE], [3 x %struct.YYLTYPE]* %18, i64 0, i64 1 + %1486 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1485, i32 0, i32 0 + %1487 = load i32, i32* %1486, align 16 + %1488 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %1489 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1488, i32 0, i32 0 + store i32 %1487, i32* %1489, align 4 + %1490 = getelementptr inbounds [3 x %struct.YYLTYPE], [3 x %struct.YYLTYPE]* %18, i64 0, i64 1 + %1491 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1490, i32 0, i32 1 + %1492 = load i32, i32* %1491, align 4 + %1493 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %1494 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1493, i32 0, i32 1 + store i32 %1492, i32* %1494, align 4 + %1495 = getelementptr inbounds [3 x %struct.YYLTYPE], [3 x %struct.YYLTYPE]* %18, i64 0, i64 2 + %1496 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1495, i32 0, i32 2 + %1497 = load i32, i32* %1496, align 8 + %1498 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %1499 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1498, i32 0, i32 2 + store i32 %1497, i32* %1499, align 4 + %1500 = getelementptr inbounds [3 x %struct.YYLTYPE], [3 x %struct.YYLTYPE]* %18, i64 0, i64 2 + %1501 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1500, i32 0, i32 3 + %1502 = load i32, i32* %1501, align 4 + %1503 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %1504 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1503, i32 0, i32 3 + store i32 %1502, i32* %1504, align 4 + br label %1505 + +1505: ; preds = %1484 + %1506 = load i32, i32* %13, align 4 + store i32 %1506, i32* %1, align 4 + br label %44 + +1507: ; preds = %165 + store i32 0, i32* %14, align 4 + br label %1510 + +1508: ; preds = %1454, %1388, %160 + store i32 1, i32* %14, align 4 + br label %1510 + +1509: ; preds = %1375, %82, %66 + call void (i8*, ...) @yyerror(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.3, i64 0, i64 0)) + store i32 2, i32* %14, align 4 + br label %1510 + +1510: ; preds = %1509, %1508, %1507 + %1511 = load i32, i32* @yychar, align 4 + %1512 = icmp ne i32 %1511, -2 + br i1 %1512, label %1513, label %1529 + +1513: ; preds = %1510 + %1514 = load i32, i32* @yychar, align 4 + %1515 = icmp sle i32 0, %1514 + br i1 %1515, label %1516, label %1525 + +1516: ; preds = %1513 + %1517 = load i32, i32* @yychar, align 4 + %1518 = icmp sle i32 %1517, 295 + br i1 %1518, label %1519, label %1525 + +1519: ; preds = %1516 + %1520 = load i32, i32* @yychar, align 4 + %1521 = sext i32 %1520 to i64 + %1522 = getelementptr inbounds [296 x i8], [296 x i8]* @yytranslate, i64 0, i64 %1521 + %1523 = load i8, i8* %1522, align 1 + %1524 = sext i8 %1523 to i32 + br label %1526 + +1525: ; preds = %1516, %1513 + br label %1526 + +1526: ; preds = %1525, %1519 + %1527 = phi i32 [ %1524, %1519 ], [ 2, %1525 ] + store i32 %1527, i32* %15, align 4 + %1528 = load i32, i32* %15, align 4 + call void @yydestruct(i8* noundef getelementptr inbounds ([30 x i8], [30 x i8]* @.str.4, i64 0, i64 0), i32 noundef %1528, %union.YYSTYPE* noundef @yylval, %struct.YYLTYPE* noundef @yylloc) + br label %1529 + +1529: ; preds = %1526, %1510 + %1530 = load i32, i32* %22, align 4 + %1531 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1532 = sext i32 %1530 to i64 + %1533 = sub i64 0, %1532 + %1534 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1531, i64 %1533 + store %union.YYSTYPE* %1534, %union.YYSTYPE** %9, align 8 + %1535 = load i32, i32* %22, align 4 + %1536 = load i8*, i8** %6, align 8 + %1537 = sext i32 %1535 to i64 + %1538 = sub i64 0, %1537 + %1539 = getelementptr inbounds i8, i8* %1536, i64 %1538 + store i8* %1539, i8** %6, align 8 + %1540 = load i32, i32* %22, align 4 + %1541 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %1542 = sext i32 %1540 to i64 + %1543 = sub i64 0, %1542 + %1544 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1541, i64 %1543 + store %struct.YYLTYPE* %1544, %struct.YYLTYPE** %12, align 8 + br label %1545 + +1545: ; preds = %1549, %1529 + %1546 = load i8*, i8** %6, align 8 + %1547 = load i8*, i8** %5, align 8 + %1548 = icmp ne i8* %1546, %1547 + br i1 %1548, label %1549, label %1565 + +1549: ; preds = %1545 + %1550 = load i8*, i8** %6, align 8 + %1551 = load i8, i8* %1550, align 1 + %1552 = zext i8 %1551 to i32 + %1553 = sext i32 %1552 to i64 + %1554 = getelementptr inbounds [207 x i8], [207 x i8]* @yystos, i64 0, i64 %1553 + %1555 = load i8, i8* %1554, align 1 + %1556 = sext i8 %1555 to i32 + %1557 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1558 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + call void @yydestruct(i8* noundef getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i64 0, i64 0), i32 noundef %1556, %union.YYSTYPE* noundef %1557, %struct.YYLTYPE* noundef %1558) + %1559 = load %union.YYSTYPE*, %union.YYSTYPE** %9, align 8 + %1560 = getelementptr inbounds %union.YYSTYPE, %union.YYSTYPE* %1559, i64 -1 + store %union.YYSTYPE* %1560, %union.YYSTYPE** %9, align 8 + %1561 = load i8*, i8** %6, align 8 + %1562 = getelementptr inbounds i8, i8* %1561, i64 -1 + store i8* %1562, i8** %6, align 8 + %1563 = load %struct.YYLTYPE*, %struct.YYLTYPE** %12, align 8 + %1564 = getelementptr inbounds %struct.YYLTYPE, %struct.YYLTYPE* %1563, i64 -1 + store %struct.YYLTYPE* %1564, %struct.YYLTYPE** %12, align 8 + br label %1545, !llvm.loop !6 + +1565: ; preds = %1545 + %1566 = load i8*, i8** %5, align 8 + %1567 = getelementptr inbounds [200 x i8], [200 x i8]* %4, i64 0, i64 0 + %1568 = icmp ne i8* %1566, %1567 + br i1 %1568, label %1569, label %1571 + +1569: ; preds = %1565 + %1570 = load i8*, i8** %5, align 8 + call void @free(i8* noundef %1570) #6 + br label %1571 + +1571: ; preds = %1569, %1565 + %1572 = load i8*, i8** %20, align 8 + %1573 = getelementptr inbounds [128 x i8], [128 x i8]* %19, i64 0, i64 0 + %1574 = icmp ne i8* %1572, %1573 + br i1 %1574, label %1575, label %1577 + +1575: ; preds = %1571 + %1576 = load i8*, i8** %20, align 8 + call void @free(i8* noundef %1576) #6 + br label %1577 + +1577: ; preds = %1575, %1571 + %1578 = load i32, i32* %14, align 4 + ret i32 %1578 +} + +; Function Attrs: argmemonly nofree nounwind willreturn +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #1 + +; Function Attrs: nounwind +declare noalias i8* @malloc(i64 noundef) #2 + +; Function Attrs: nounwind +declare void @free(i8* noundef) #2 + +declare i32 @yylex(...) #3 + +declare %struct.ASTNode* @new_node(i32 noundef, %struct.ASTNode* noundef, %struct.ASTNode* noundef, %struct.ASTNode* noundef, i32 noundef, float noundef, i8* noundef, i32 noundef) #3 + +; Function Attrs: noinline nounwind optnone uwtable +define internal i32 @yysyntax_error(i64* noundef %0, i8** noundef %1, %struct.yypcontext_t* noundef %2) #0 { + %4 = alloca i32, align 4 + %5 = alloca i64*, align 8 + %6 = alloca i8**, align 8 + %7 = alloca %struct.yypcontext_t*, align 8 + %8 = alloca i8*, align 8 + %9 = alloca [5 x i32], align 16 + %10 = alloca i64, align 8 + %11 = alloca i32, align 4 + %12 = alloca i32, align 4 + %13 = alloca i64, align 8 + %14 = alloca i8*, align 8 + %15 = alloca i32, align 4 + store i64* %0, i64** %5, align 8 + store i8** %1, i8*** %6, align 8 + store %struct.yypcontext_t* %2, %struct.yypcontext_t** %7, align 8 + store i8* null, i8** %8, align 8 + store i64 0, i64* %10, align 8 + %16 = load %struct.yypcontext_t*, %struct.yypcontext_t** %7, align 8 + %17 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 0 + %18 = call i32 @yy_syntax_error_arguments(%struct.yypcontext_t* noundef %16, i32* noundef %17, i32 noundef 5) + store i32 %18, i32* %11, align 4 + %19 = load i32, i32* %11, align 4 + %20 = icmp eq i32 %19, -2 + br i1 %20, label %21, label %22 + +21: ; preds = %3 + store i32 -2, i32* %4, align 4 + br label %133 + +22: ; preds = %3 + %23 = load i32, i32* %11, align 4 + switch i32 %23, label %24 [ + i32 0, label %25 + i32 1, label %26 + i32 2, label %27 + i32 3, label %28 + i32 4, label %29 + i32 5, label %30 + ] + +24: ; preds = %22 + br label %25 + +25: ; preds = %22, %24 + store i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i64 0, i64 0), i8** %8, align 8 + br label %31 + +26: ; preds = %22 + store i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.9, i64 0, i64 0), i8** %8, align 8 + br label %31 + +27: ; preds = %22 + store i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.10, i64 0, i64 0), i8** %8, align 8 + br label %31 + +28: ; preds = %22 + store i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.11, i64 0, i64 0), i8** %8, align 8 + br label %31 + +29: ; preds = %22 + store i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.12, i64 0, i64 0), i8** %8, align 8 + br label %31 + +30: ; preds = %22 + store i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.13, i64 0, i64 0), i8** %8, align 8 + br label %31 + +31: ; preds = %30, %29, %28, %27, %26, %25 + %32 = load i8*, i8** %8, align 8 + %33 = call i64 @strlen(i8* noundef %32) #7 + %34 = load i32, i32* %11, align 4 + %35 = mul nsw i32 2, %34 + %36 = sext i32 %35 to i64 + %37 = sub nsw i64 %33, %36 + %38 = add nsw i64 %37, 1 + store i64 %38, i64* %10, align 8 + store i32 0, i32* %12, align 4 + br label %39 + +39: ; preds = %64, %31 + %40 = load i32, i32* %12, align 4 + %41 = load i32, i32* %11, align 4 + %42 = icmp slt i32 %40, %41 + br i1 %42, label %43, label %67 + +43: ; preds = %39 + %44 = load i64, i64* %10, align 8 + %45 = load i32, i32* %12, align 4 + %46 = sext i32 %45 to i64 + %47 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 %46 + %48 = load i32, i32* %47, align 4 + %49 = sext i32 %48 to i64 + %50 = getelementptr inbounds [73 x i8*], [73 x i8*]* @yytname, i64 0, i64 %49 + %51 = load i8*, i8** %50, align 8 + %52 = call i64 @yytnamerr(i8* noundef null, i8* noundef %51) + %53 = add nsw i64 %44, %52 + store i64 %53, i64* %13, align 8 + %54 = load i64, i64* %10, align 8 + %55 = load i64, i64* %13, align 8 + %56 = icmp sle i64 %54, %55 + br i1 %56, label %57, label %62 + +57: ; preds = %43 + %58 = load i64, i64* %13, align 8 + %59 = icmp sle i64 %58, 9223372036854775807 + br i1 %59, label %60, label %62 + +60: ; preds = %57 + %61 = load i64, i64* %13, align 8 + store i64 %61, i64* %10, align 8 + br label %63 + +62: ; preds = %57, %43 + store i32 -2, i32* %4, align 4 + br label %133 + +63: ; preds = %60 + br label %64 + +64: ; preds = %63 + %65 = load i32, i32* %12, align 4 + %66 = add nsw i32 %65, 1 + store i32 %66, i32* %12, align 4 + br label %39, !llvm.loop !8 + +67: ; preds = %39 + %68 = load i64*, i64** %5, align 8 + %69 = load i64, i64* %68, align 8 + %70 = load i64, i64* %10, align 8 + %71 = icmp slt i64 %69, %70 + br i1 %71, label %72, label %87 + +72: ; preds = %67 + %73 = load i64, i64* %10, align 8 + %74 = mul nsw i64 2, %73 + %75 = load i64*, i64** %5, align 8 + store i64 %74, i64* %75, align 8 + %76 = load i64, i64* %10, align 8 + %77 = load i64*, i64** %5, align 8 + %78 = load i64, i64* %77, align 8 + %79 = icmp sle i64 %76, %78 + br i1 %79, label %80, label %84 + +80: ; preds = %72 + %81 = load i64*, i64** %5, align 8 + %82 = load i64, i64* %81, align 8 + %83 = icmp sle i64 %82, 9223372036854775807 + br i1 %83, label %86, label %84 + +84: ; preds = %80, %72 + %85 = load i64*, i64** %5, align 8 + store i64 9223372036854775807, i64* %85, align 8 + br label %86 + +86: ; preds = %84, %80 + store i32 -1, i32* %4, align 4 + br label %133 + +87: ; preds = %67 + %88 = load i8**, i8*** %6, align 8 + %89 = load i8*, i8** %88, align 8 + store i8* %89, i8** %14, align 8 + store i32 0, i32* %15, align 4 + br label %90 + +90: ; preds = %131, %87 + %91 = load i8*, i8** %8, align 8 + %92 = load i8, i8* %91, align 1 + %93 = load i8*, i8** %14, align 8 + store i8 %92, i8* %93, align 1 + %94 = sext i8 %92 to i32 + %95 = icmp ne i32 %94, 0 + br i1 %95, label %96, label %132 + +96: ; preds = %90 + %97 = load i8*, i8** %14, align 8 + %98 = load i8, i8* %97, align 1 + %99 = sext i8 %98 to i32 + %100 = icmp eq i32 %99, 37 + br i1 %100, label %101, label %126 + +101: ; preds = %96 + %102 = load i8*, i8** %8, align 8 + %103 = getelementptr inbounds i8, i8* %102, i64 1 + %104 = load i8, i8* %103, align 1 + %105 = sext i8 %104 to i32 + %106 = icmp eq i32 %105, 115 + br i1 %106, label %107, label %126 + +107: ; preds = %101 + %108 = load i32, i32* %15, align 4 + %109 = load i32, i32* %11, align 4 + %110 = icmp slt i32 %108, %109 + br i1 %110, label %111, label %126 + +111: ; preds = %107 + %112 = load i8*, i8** %14, align 8 + %113 = load i32, i32* %15, align 4 + %114 = add nsw i32 %113, 1 + store i32 %114, i32* %15, align 4 + %115 = sext i32 %113 to i64 + %116 = getelementptr inbounds [5 x i32], [5 x i32]* %9, i64 0, i64 %115 + %117 = load i32, i32* %116, align 4 + %118 = sext i32 %117 to i64 + %119 = getelementptr inbounds [73 x i8*], [73 x i8*]* @yytname, i64 0, i64 %118 + %120 = load i8*, i8** %119, align 8 + %121 = call i64 @yytnamerr(i8* noundef %112, i8* noundef %120) + %122 = load i8*, i8** %14, align 8 + %123 = getelementptr inbounds i8, i8* %122, i64 %121 + store i8* %123, i8** %14, align 8 + %124 = load i8*, i8** %8, align 8 + %125 = getelementptr inbounds i8, i8* %124, i64 2 + store i8* %125, i8** %8, align 8 + br label %131 + +126: ; preds = %107, %101, %96 + %127 = load i8*, i8** %14, align 8 + %128 = getelementptr inbounds i8, i8* %127, i32 1 + store i8* %128, i8** %14, align 8 + %129 = load i8*, i8** %8, align 8 + %130 = getelementptr inbounds i8, i8* %129, i32 1 + store i8* %130, i8** %8, align 8 + br label %131 + +131: ; preds = %126, %111 + br label %90, !llvm.loop !9 + +132: ; preds = %90 + store i32 0, i32* %4, align 4 + br label %133 + +133: ; preds = %132, %86, %62, %21 + %134 = load i32, i32* %4, align 4 + ret i32 %134 +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local void @yyerror(i8* noundef %0, ...) #0 { + %2 = alloca i8*, align 8 + %3 = alloca [1 x %struct.__va_list_tag], align 16 + store i8* %0, i8** %2, align 8 + store i32 1, i32* @syntax_error, align 4 + %4 = getelementptr inbounds [1 x %struct.__va_list_tag], [1 x %struct.__va_list_tag]* %3, i64 0, i64 0 + %5 = bitcast %struct.__va_list_tag* %4 to i8* + call void @llvm.va_start(i8* %5) + %6 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8 + %7 = load i32, i32* @yylineno, align 4 + %8 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* noundef %6, i8* noundef getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0), i8* noundef getelementptr inbounds ([100 x i8], [100 x i8]* @filename, i64 0, i64 0), i32 noundef %7) + %9 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8 + %10 = load i8*, i8** %2, align 8 + %11 = getelementptr inbounds [1 x %struct.__va_list_tag], [1 x %struct.__va_list_tag]* %3, i64 0, i64 0 + %12 = call i32 @vfprintf(%struct._IO_FILE* noundef %9, i8* noundef %10, %struct.__va_list_tag* noundef %11) + %13 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8 + %14 = call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* noundef %13, i8* noundef getelementptr inbounds ([3 x i8], [3 x i8]* @.str.8, i64 0, i64 0)) + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define internal void @yydestruct(i8* noundef %0, i32 noundef %1, %union.YYSTYPE* noundef %2, %struct.YYLTYPE* noundef %3) #0 { + %5 = alloca i8*, align 8 + %6 = alloca i32, align 4 + %7 = alloca %union.YYSTYPE*, align 8 + %8 = alloca %struct.YYLTYPE*, align 8 + store i8* %0, i8** %5, align 8 + store i32 %1, i32* %6, align 4 + store %union.YYSTYPE* %2, %union.YYSTYPE** %7, align 8 + store %struct.YYLTYPE* %3, %struct.YYLTYPE** %8, align 8 + %9 = load %union.YYSTYPE*, %union.YYSTYPE** %7, align 8 + %10 = load %struct.YYLTYPE*, %struct.YYLTYPE** %8, align 8 + %11 = load i8*, i8** %5, align 8 + %12 = icmp ne i8* %11, null + br i1 %12, label %14, label %13 + +13: ; preds = %4 + store i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.86, i64 0, i64 0), i8** %5, align 8 + br label %14 + +14: ; preds = %13, %4 + %15 = load i32, i32* %6, align 4 + ret void +} + +; Function Attrs: noinline nounwind optnone uwtable +define dso_local i32 @main(i32 noundef %0, i8** noundef %1) #0 { + %3 = alloca i32, align 4 + %4 = alloca i32, align 4 + %5 = alloca i8**, align 8 + %6 = alloca i32, align 4 + store i32 0, i32* %3, align 4 + store i32 %0, i32* %4, align 4 + store i8** %1, i8*** %5, align 8 + %7 = load i8**, i8*** %5, align 8 + %8 = getelementptr inbounds i8*, i8** %7, i64 1 + %9 = load i8*, i8** %8, align 8 + %10 = call i64 @strlen(i8* noundef %9) #7 + %11 = sub i64 %10, 1 + %12 = trunc i64 %11 to i32 + store i32 %12, i32* %6, align 4 + br label %13 + +13: ; preds = %29, %2 + %14 = load i32, i32* %6, align 4 + %15 = icmp sgt i32 %14, 0 + br i1 %15, label %16, label %27 + +16: ; preds = %13 + %17 = load i8**, i8*** %5, align 8 + %18 = getelementptr inbounds i8*, i8** %17, i64 1 + %19 = load i8*, i8** %18, align 8 + %20 = load i32, i32* %6, align 4 + %21 = sub nsw i32 %20, 1 + %22 = sext i32 %21 to i64 + %23 = getelementptr inbounds i8, i8* %19, i64 %22 + %24 = load i8, i8* %23, align 1 + %25 = sext i8 %24 to i32 + %26 = icmp ne i32 %25, 47 + br label %27 + +27: ; preds = %16, %13 + %28 = phi i1 [ false, %13 ], [ %26, %16 ] + br i1 %28, label %29, label %32 + +29: ; preds = %27 + %30 = load i32, i32* %6, align 4 + %31 = add nsw i32 %30, -1 + store i32 %31, i32* %6, align 4 + br label %13, !llvm.loop !10 + +32: ; preds = %27 + %33 = load i8**, i8*** %5, align 8 + %34 = getelementptr inbounds i8*, i8** %33, i64 1 + %35 = load i8*, i8** %34, align 8 + %36 = load i32, i32* %6, align 4 + %37 = sext i32 %36 to i64 + %38 = getelementptr inbounds i8, i8* %35, i64 %37 + %39 = call i8* @strcpy(i8* noundef getelementptr inbounds ([100 x i8], [100 x i8]* @filename, i64 0, i64 0), i8* noundef %38) #6 + %40 = load i8**, i8*** %5, align 8 + %41 = getelementptr inbounds i8*, i8** %40, i64 1 + %42 = load i8*, i8** %41, align 8 + %43 = load %struct._IO_FILE*, %struct._IO_FILE** @stdin, align 8 + %44 = call %struct._IO_FILE* @freopen(i8* noundef %42, i8* noundef getelementptr inbounds ([2 x i8], [2 x i8]* @.str.6, i64 0, i64 0), %struct._IO_FILE* noundef %43) + %45 = call i32 @yyparse() + %46 = load i32, i32* @syntax_error, align 4 + %47 = icmp eq i32 %46, 0 + br i1 %47, label %48, label %50 + +48: ; preds = %32 + %49 = load %struct.ASTNode*, %struct.ASTNode** @root, align 8 + call void @display(%struct.ASTNode* noundef %49) + br label %50 + +50: ; preds = %48, %32 + ret i32 0 +} + +; Function Attrs: nounwind readonly willreturn +declare i64 @strlen(i8* noundef) #4 + +; Function Attrs: nounwind +declare i8* @strcpy(i8* noundef, i8* noundef) #2 + +declare %struct._IO_FILE* @freopen(i8* noundef, i8* noundef, %struct._IO_FILE* noundef) #3 + +declare void @display(%struct.ASTNode* noundef) #3 + +; Function Attrs: nofree nosync nounwind willreturn +declare void @llvm.va_start(i8*) #5 + +declare i32 @fprintf(%struct._IO_FILE* noundef, i8* noundef, ...) #3 + +declare i32 @vfprintf(%struct._IO_FILE* noundef, i8* noundef, %struct.__va_list_tag* noundef) #3 + +; Function Attrs: noinline nounwind optnone uwtable +define internal i32 @yy_syntax_error_arguments(%struct.yypcontext_t* noundef %0, i32* noundef %1, i32 noundef %2) #0 { + %4 = alloca i32, align 4 + %5 = alloca %struct.yypcontext_t*, align 8 + %6 = alloca i32*, align 8 + %7 = alloca i32, align 4 + %8 = alloca i32, align 4 + %9 = alloca i32, align 4 + store %struct.yypcontext_t* %0, %struct.yypcontext_t** %5, align 8 + store i32* %1, i32** %6, align 8 + store i32 %2, i32* %7, align 4 + store i32 0, i32* %8, align 4 + %10 = load %struct.yypcontext_t*, %struct.yypcontext_t** %5, align 8 + %11 = getelementptr inbounds %struct.yypcontext_t, %struct.yypcontext_t* %10, i32 0, i32 1 + %12 = load i32, i32* %11, align 8 + %13 = icmp ne i32 %12, -2 + br i1 %13, label %14, label %49 + +14: ; preds = %3 + %15 = load i32*, i32** %6, align 8 + %16 = icmp ne i32* %15, null + br i1 %16, label %17, label %25 + +17: ; preds = %14 + %18 = load %struct.yypcontext_t*, %struct.yypcontext_t** %5, align 8 + %19 = getelementptr inbounds %struct.yypcontext_t, %struct.yypcontext_t* %18, i32 0, i32 1 + %20 = load i32, i32* %19, align 8 + %21 = load i32*, i32** %6, align 8 + %22 = load i32, i32* %8, align 4 + %23 = sext i32 %22 to i64 + %24 = getelementptr inbounds i32, i32* %21, i64 %23 + store i32 %20, i32* %24, align 4 + br label %25 + +25: ; preds = %17, %14 + %26 = load i32, i32* %8, align 4 + %27 = add nsw i32 %26, 1 + store i32 %27, i32* %8, align 4 + %28 = load %struct.yypcontext_t*, %struct.yypcontext_t** %5, align 8 + %29 = load i32*, i32** %6, align 8 + %30 = icmp ne i32* %29, null + br i1 %30, label %31, label %34 + +31: ; preds = %25 + %32 = load i32*, i32** %6, align 8 + %33 = getelementptr inbounds i32, i32* %32, i64 1 + br label %36 + +34: ; preds = %25 + %35 = load i32*, i32** %6, align 8 + br label %36 + +36: ; preds = %34, %31 + %37 = phi i32* [ %33, %31 ], [ %35, %34 ] + %38 = load i32, i32* %7, align 4 + %39 = sub nsw i32 %38, 1 + %40 = call i32 @yypcontext_expected_tokens(%struct.yypcontext_t* noundef %28, i32* noundef %37, i32 noundef %39) + store i32 %40, i32* %9, align 4 + %41 = load i32, i32* %9, align 4 + %42 = icmp eq i32 %41, -2 + br i1 %42, label %43, label %44 + +43: ; preds = %36 + store i32 -2, i32* %4, align 4 + br label %51 + +44: ; preds = %36 + %45 = load i32, i32* %9, align 4 + %46 = load i32, i32* %8, align 4 + %47 = add nsw i32 %46, %45 + store i32 %47, i32* %8, align 4 + br label %48 + +48: ; preds = %44 + br label %49 + +49: ; preds = %48, %3 + %50 = load i32, i32* %8, align 4 + store i32 %50, i32* %4, align 4 + br label %51 + +51: ; preds = %49, %43 + %52 = load i32, i32* %4, align 4 + ret i32 %52 +} + +; Function Attrs: noinline nounwind optnone uwtable +define internal i64 @yytnamerr(i8* noundef %0, i8* noundef %1) #0 { + %3 = alloca i64, align 8 + %4 = alloca i8*, align 8 + %5 = alloca i8*, align 8 + %6 = alloca i64, align 8 + %7 = alloca i8*, align 8 + store i8* %0, i8** %4, align 8 + store i8* %1, i8** %5, align 8 + %8 = load i8*, i8** %5, align 8 + %9 = load i8, i8* %8, align 1 + %10 = sext i8 %9 to i32 + %11 = icmp eq i32 %10, 34 + br i1 %11, label %12, label %52 + +12: ; preds = %2 + store i64 0, i64* %6, align 8 + %13 = load i8*, i8** %5, align 8 + store i8* %13, i8** %7, align 8 + br label %14 + +14: ; preds = %50, %12 + %15 = load i8*, i8** %7, align 8 + %16 = getelementptr inbounds i8, i8* %15, i32 1 + store i8* %16, i8** %7, align 8 + %17 = load i8, i8* %16, align 1 + %18 = sext i8 %17 to i32 + switch i32 %18, label %29 [ + i32 39, label %19 + i32 44, label %19 + i32 92, label %20 + i32 34, label %41 + ] + +19: ; preds = %14, %14 + br label %51 + +20: ; preds = %14 + %21 = load i8*, i8** %7, align 8 + %22 = getelementptr inbounds i8, i8* %21, i32 1 + store i8* %22, i8** %7, align 8 + %23 = load i8, i8* %22, align 1 + %24 = sext i8 %23 to i32 + %25 = icmp ne i32 %24, 92 + br i1 %25, label %26, label %27 + +26: ; preds = %20 + br label %51 + +27: ; preds = %20 + br label %28 + +28: ; preds = %27 + br label %29 + +29: ; preds = %14, %28 + %30 = load i8*, i8** %4, align 8 + %31 = icmp ne i8* %30, null + br i1 %31, label %32, label %38 + +32: ; preds = %29 + %33 = load i8*, i8** %7, align 8 + %34 = load i8, i8* %33, align 1 + %35 = load i8*, i8** %4, align 8 + %36 = load i64, i64* %6, align 8 + %37 = getelementptr inbounds i8, i8* %35, i64 %36 + store i8 %34, i8* %37, align 1 + br label %38 + +38: ; preds = %32, %29 + %39 = load i64, i64* %6, align 8 + %40 = add nsw i64 %39, 1 + store i64 %40, i64* %6, align 8 + br label %50 + +41: ; preds = %14 + %42 = load i8*, i8** %4, align 8 + %43 = icmp ne i8* %42, null + br i1 %43, label %44, label %48 + +44: ; preds = %41 + %45 = load i8*, i8** %4, align 8 + %46 = load i64, i64* %6, align 8 + %47 = getelementptr inbounds i8, i8* %45, i64 %46 + store i8 0, i8* %47, align 1 + br label %48 + +48: ; preds = %44, %41 + %49 = load i64, i64* %6, align 8 + store i64 %49, i64* %3, align 8 + br label %66 + +50: ; preds = %38 + br label %14 + +51: ; preds = %26, %19 + br label %52 + +52: ; preds = %51, %2 + %53 = load i8*, i8** %4, align 8 + %54 = icmp ne i8* %53, null + br i1 %54, label %55, label %63 + +55: ; preds = %52 + %56 = load i8*, i8** %4, align 8 + %57 = load i8*, i8** %5, align 8 + %58 = call i8* @yystpcpy(i8* noundef %56, i8* noundef %57) + %59 = load i8*, i8** %4, align 8 + %60 = ptrtoint i8* %58 to i64 + %61 = ptrtoint i8* %59 to i64 + %62 = sub i64 %60, %61 + store i64 %62, i64* %3, align 8 + br label %66 + +63: ; preds = %52 + %64 = load i8*, i8** %5, align 8 + %65 = call i64 @strlen(i8* noundef %64) #7 + store i64 %65, i64* %3, align 8 + br label %66 + +66: ; preds = %63, %55, %48 + %67 = load i64, i64* %3, align 8 + ret i64 %67 +} + +; Function Attrs: noinline nounwind optnone uwtable +define internal i32 @yypcontext_expected_tokens(%struct.yypcontext_t* noundef %0, i32* noundef %1, i32 noundef %2) #0 { + %4 = alloca i32, align 4 + %5 = alloca %struct.yypcontext_t*, align 8 + %6 = alloca i32*, align 8 + %7 = alloca i32, align 4 + %8 = alloca i32, align 4 + %9 = alloca i32, align 4 + %10 = alloca i32, align 4 + %11 = alloca i32, align 4 + %12 = alloca i32, align 4 + %13 = alloca i32, align 4 + store %struct.yypcontext_t* %0, %struct.yypcontext_t** %5, align 8 + store i32* %1, i32** %6, align 8 + store i32 %2, i32* %7, align 4 + store i32 0, i32* %8, align 4 + %14 = load %struct.yypcontext_t*, %struct.yypcontext_t** %5, align 8 + %15 = getelementptr inbounds %struct.yypcontext_t, %struct.yypcontext_t* %14, i32 0, i32 0 + %16 = load i8*, i8** %15, align 8 + %17 = load i8, i8* %16, align 1 + %18 = zext i8 %17 to i32 + %19 = sext i32 %18 to i64 + %20 = getelementptr inbounds [207 x i16], [207 x i16]* @yypact, i64 0, i64 %19 + %21 = load i16, i16* %20, align 2 + %22 = sext i16 %21 to i32 + store i32 %22, i32* %9, align 4 + %23 = load i32, i32* %9, align 4 + %24 = icmp eq i32 %23, -167 + br i1 %24, label %87, label %25 + +25: ; preds = %3 + %26 = load i32, i32* %9, align 4 + %27 = icmp slt i32 %26, 0 + br i1 %27, label %28, label %31 + +28: ; preds = %25 + %29 = load i32, i32* %9, align 4 + %30 = sub nsw i32 0, %29 + br label %32 + +31: ; preds = %25 + br label %32 + +32: ; preds = %31, %28 + %33 = phi i32 [ %30, %28 ], [ 0, %31 ] + store i32 %33, i32* %10, align 4 + %34 = load i32, i32* %9, align 4 + %35 = sub nsw i32 301, %34 + %36 = add nsw i32 %35, 1 + store i32 %36, i32* %11, align 4 + %37 = load i32, i32* %11, align 4 + %38 = icmp slt i32 %37, 41 + br i1 %38, label %39, label %41 + +39: ; preds = %32 + %40 = load i32, i32* %11, align 4 + br label %42 + +41: ; preds = %32 + br label %42 + +42: ; preds = %41, %39 + %43 = phi i32 [ %40, %39 ], [ 41, %41 ] + store i32 %43, i32* %12, align 4 + %44 = load i32, i32* %10, align 4 + store i32 %44, i32* %13, align 4 + br label %45 + +45: ; preds = %83, %42 + %46 = load i32, i32* %13, align 4 + %47 = load i32, i32* %12, align 4 + %48 = icmp slt i32 %46, %47 + br i1 %48, label %49, label %86 + +49: ; preds = %45 + %50 = load i32, i32* %13, align 4 + %51 = load i32, i32* %9, align 4 + %52 = add nsw i32 %50, %51 + %53 = sext i32 %52 to i64 + %54 = getelementptr inbounds [302 x i16], [302 x i16]* @yycheck, i64 0, i64 %53 + %55 = load i16, i16* %54, align 2 + %56 = sext i16 %55 to i32 + %57 = load i32, i32* %13, align 4 + %58 = icmp eq i32 %56, %57 + br i1 %58, label %59, label %82 + +59: ; preds = %49 + %60 = load i32, i32* %13, align 4 + %61 = icmp ne i32 %60, 1 + br i1 %61, label %62, label %82 + +62: ; preds = %59 + %63 = load i32*, i32** %6, align 8 + %64 = icmp ne i32* %63, null + br i1 %64, label %68, label %65 + +65: ; preds = %62 + %66 = load i32, i32* %8, align 4 + %67 = add nsw i32 %66, 1 + store i32 %67, i32* %8, align 4 + br label %81 + +68: ; preds = %62 + %69 = load i32, i32* %8, align 4 + %70 = load i32, i32* %7, align 4 + %71 = icmp eq i32 %69, %70 + br i1 %71, label %72, label %73 + +72: ; preds = %68 + store i32 0, i32* %4, align 4 + br label %101 + +73: ; preds = %68 + %74 = load i32, i32* %13, align 4 + %75 = load i32*, i32** %6, align 8 + %76 = load i32, i32* %8, align 4 + %77 = add nsw i32 %76, 1 + store i32 %77, i32* %8, align 4 + %78 = sext i32 %76 to i64 + %79 = getelementptr inbounds i32, i32* %75, i64 %78 + store i32 %74, i32* %79, align 4 + br label %80 + +80: ; preds = %73 + br label %81 + +81: ; preds = %80, %65 + br label %82 + +82: ; preds = %81, %59, %49 + br label %83 + +83: ; preds = %82 + %84 = load i32, i32* %13, align 4 + %85 = add nsw i32 %84, 1 + store i32 %85, i32* %13, align 4 + br label %45, !llvm.loop !11 + +86: ; preds = %45 + br label %87 + +87: ; preds = %86, %3 + %88 = load i32*, i32** %6, align 8 + %89 = icmp ne i32* %88, null + br i1 %89, label %90, label %99 + +90: ; preds = %87 + %91 = load i32, i32* %8, align 4 + %92 = icmp eq i32 %91, 0 + br i1 %92, label %93, label %99 + +93: ; preds = %90 + %94 = load i32, i32* %7, align 4 + %95 = icmp slt i32 0, %94 + br i1 %95, label %96, label %99 + +96: ; preds = %93 + %97 = load i32*, i32** %6, align 8 + %98 = getelementptr inbounds i32, i32* %97, i64 0 + store i32 -2, i32* %98, align 4 + br label %99 + +99: ; preds = %96, %93, %90, %87 + %100 = load i32, i32* %8, align 4 + store i32 %100, i32* %4, align 4 + br label %101 + +101: ; preds = %99, %72 + %102 = load i32, i32* %4, align 4 + ret i32 %102 +} + +; Function Attrs: noinline nounwind optnone uwtable +define internal i8* @yystpcpy(i8* noundef %0, i8* noundef %1) #0 { + %3 = alloca i8*, align 8 + %4 = alloca i8*, align 8 + %5 = alloca i8*, align 8 + %6 = alloca i8*, align 8 + store i8* %0, i8** %3, align 8 + store i8* %1, i8** %4, align 8 + %7 = load i8*, i8** %3, align 8 + store i8* %7, i8** %5, align 8 + %8 = load i8*, i8** %4, align 8 + store i8* %8, i8** %6, align 8 + br label %9 + +9: ; preds = %17, %2 + %10 = load i8*, i8** %6, align 8 + %11 = getelementptr inbounds i8, i8* %10, i32 1 + store i8* %11, i8** %6, align 8 + %12 = load i8, i8* %10, align 1 + %13 = load i8*, i8** %5, align 8 + %14 = getelementptr inbounds i8, i8* %13, i32 1 + store i8* %14, i8** %5, align 8 + store i8 %12, i8* %13, align 1 + %15 = sext i8 %12 to i32 + %16 = icmp ne i32 %15, 0 + br i1 %16, label %17, label %18 + +17: ; preds = %9 + br label %9, !llvm.loop !12 + +18: ; preds = %9 + %19 = load i8*, i8** %5, align 8 + %20 = getelementptr inbounds i8, i8* %19, i64 -1 + ret i8* %20 +} + +attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { argmemonly nofree nounwind willreturn } +attributes #2 = { nounwind "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #4 = { nounwind readonly willreturn "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #5 = { nofree nosync nounwind willreturn } +attributes #6 = { nounwind } +attributes #7 = { nounwind readonly willreturn } + +!llvm.module.flags = !{!0, !1, !2, !3, !4} +!llvm.ident = !{!5} + +!0 = !{i32 1, !"wchar_size", i32 4} +!1 = !{i32 7, !"PIC Level", i32 2} +!2 = !{i32 7, !"PIE Level", i32 2} +!3 = !{i32 7, !"uwtable", i32 1} +!4 = !{i32 7, !"frame-pointer", i32 2} +!5 = !{!"Ubuntu clang version 14.0.0-1ubuntu1.1"} +!6 = distinct !{!6, !7} +!7 = !{!"llvm.loop.mustprogress"} +!8 = distinct !{!8, !7} +!9 = distinct !{!9, !7} +!10 = distinct !{!10, !7} +!11 = distinct !{!11, !7} +!12 = distinct !{!12, !7}