blob: f90af195412d7aecb7be36ef61b6b5ea9bb76d41 [file] [log] [blame]
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -slp-threshold=-99999 < %s | FileCheck %s
define i32 @test(ptr addrspace(1) %arg) {
; CHECK-LABEL: define i32 @test(
; CHECK-SAME: ptr addrspace(1) [[ARG:%.*]]) {
; CHECK-NEXT: [[BB:.*:]]
; CHECK-NEXT: br label %[[BB1:.*]]
; CHECK: [[BB1]]:
; CHECK-NEXT: [[TMP0:%.*]] = insertelement <2 x ptr addrspace(1)> poison, ptr addrspace(1) [[ARG]], i32 0
; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x ptr addrspace(1)> [[TMP0]], <2 x ptr addrspace(1)> poison, <2 x i32> zeroinitializer
; CHECK-NEXT: [[TMP2:%.*]] = getelementptr i8, <2 x ptr addrspace(1)> [[TMP1]], <2 x i64> <i64 21, i64 22>
; CHECK-NEXT: [[TMP3:%.*]] = getelementptr i8, <2 x ptr addrspace(1)> [[TMP1]], <2 x i64> <i64 20, i64 21>
; CHECK-NEXT: [[GETELEMENTPTR3:%.*]] = getelementptr i8, ptr addrspace(1) [[ARG]], i64 22
; CHECK-NEXT: br i1 false, label %[[BB73:.*]], label %[[BB150:.*]]
; CHECK: [[BB4:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB68:.*]], label %[[BB70:.*]]
; CHECK: [[BB5:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB64:.*]], label %[[BB66:.*]]
; CHECK: [[BB6:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB60:.*]], label %[[BB62:.*]]
; CHECK: [[BB7:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB8:.*]], label %[[BB58:.*]]
; CHECK: [[BB8]]:
; CHECK-NEXT: br i1 false, label %[[BB54:.*]], label %[[BB56:.*]]
; CHECK: [[BB9:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB50:.*]], label %[[BB52:.*]]
; CHECK: [[BB10:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB46:.*]], label %[[BB48:.*]]
; CHECK: [[BB11:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB42:.*]], label %[[BB44:.*]]
; CHECK: [[BB12:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB38:.*]], label %[[BB40:.*]]
; CHECK: [[BB13:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB36:.*]], label %[[BB122:.*]]
; CHECK: [[BB14:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB32:.*]], label %[[BB34:.*]]
; CHECK: [[BB15:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB28:.*]], label %[[BB30:.*]]
; CHECK: [[BB16:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB17:.*]], label %[[BB26:.*]]
; CHECK: [[BB17]]:
; CHECK-NEXT: br i1 false, label %[[BB22:.*]], label %[[BB24:.*]]
; CHECK: [[BB18:.*:]]
; CHECK-NEXT: br i1 false, label %[[BB19:.*]], label %[[BB20:.*]]
; CHECK: [[BB19]]:
; CHECK-NEXT: [[LOAD:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB20]]:
; CHECK-NEXT: [[LOAD21:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB22]]:
; CHECK-NEXT: [[LOAD23:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB24]]:
; CHECK-NEXT: [[LOAD25:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB26]]:
; CHECK-NEXT: [[LOAD27:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB28]]:
; CHECK-NEXT: [[LOAD29:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB30]]:
; CHECK-NEXT: [[LOAD31:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB32]]:
; CHECK-NEXT: [[LOAD33:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB34]]:
; CHECK-NEXT: [[LOAD35:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB36]]:
; CHECK-NEXT: [[LOAD37:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB38]]:
; CHECK-NEXT: [[LOAD39:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB40]]:
; CHECK-NEXT: [[LOAD41:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB42]]:
; CHECK-NEXT: [[LOAD43:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB44]]:
; CHECK-NEXT: [[LOAD45:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB46]]:
; CHECK-NEXT: [[LOAD47:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB48]]:
; CHECK-NEXT: [[LOAD49:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB50]]:
; CHECK-NEXT: [[LOAD51:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB52]]:
; CHECK-NEXT: [[LOAD53:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB54]]:
; CHECK-NEXT: [[LOAD55:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB56]]:
; CHECK-NEXT: [[LOAD57:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB58]]:
; CHECK-NEXT: [[LOAD59:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB60]]:
; CHECK-NEXT: [[LOAD61:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB62]]:
; CHECK-NEXT: [[LOAD63:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB64]]:
; CHECK-NEXT: [[LOAD65:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB66]]:
; CHECK-NEXT: [[LOAD67:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB68]]:
; CHECK-NEXT: [[LOAD69:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB70]]:
; CHECK-NEXT: [[LOAD71:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB72:.*]]:
; CHECK-NEXT: br i1 false, label %[[BB142:.*]], label %[[BB79:.*]]
; CHECK: [[BB73]]:
; CHECK-NEXT: [[TMP4:%.*]] = insertelement <2 x ptr addrspace(1)> <ptr addrspace(1) poison, ptr addrspace(1) null>, ptr addrspace(1) [[GETELEMENTPTR3]], i32 0
; CHECK-NEXT: br i1 false, label %[[BB146:.*]], label %[[BB74:.*]]
; CHECK: [[BB74]]:
; CHECK-NEXT: br i1 false, label %[[BB75:.*]], label %[[BB76:.*]]
; CHECK: [[BB75]]:
; CHECK-NEXT: br label %[[BB150]]
; CHECK: [[BB76]]:
; CHECK-NEXT: br i1 false, label %[[BB153:.*]], label %[[BB77:.*]]
; CHECK: [[BB77]]:
; CHECK-NEXT: [[LOAD78:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB79]]:
; CHECK-NEXT: br i1 false, label %[[BB146]], label %[[BB81:.*]]
; CHECK: [[BB80:.*]]:
; CHECK-NEXT: br label %[[BB150]]
; CHECK: [[BB81]]:
; CHECK-NEXT: [[LOAD82:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB83:.*]]:
; CHECK-NEXT: br label %[[BB138:.*]]
; CHECK: [[BB84:.*]]:
; CHECK-NEXT: br i1 false, label %[[BB142]], label %[[BB85:.*]]
; CHECK: [[BB85]]:
; CHECK-NEXT: br i1 false, label %[[BB146]], label %[[BB86:.*]]
; CHECK: [[BB86]]:
; CHECK-NEXT: [[LOAD87:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB88:.*]]:
; CHECK-NEXT: br label %[[BB134:.*]]
; CHECK: [[BB89:.*]]:
; CHECK-NEXT: br i1 false, label %[[BB138]], label %[[BB90:.*]]
; CHECK: [[BB90]]:
; CHECK-NEXT: br i1 false, label %[[BB142]], label %[[BB91:.*]]
; CHECK: [[BB91]]:
; CHECK-NEXT: [[LOAD92:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB93:.*]]:
; CHECK-NEXT: br label %[[BB130:.*]]
; CHECK: [[BB94:.*]]:
; CHECK-NEXT: br i1 false, label %[[BB134]], label %[[BB95:.*]]
; CHECK: [[BB95]]:
; CHECK-NEXT: br i1 false, label %[[BB138]], label %[[BB96:.*]]
; CHECK: [[BB96]]:
; CHECK-NEXT: [[LOAD97:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB98:.*]]:
; CHECK-NEXT: br label %[[BB126:.*]]
; CHECK: [[BB99:.*]]:
; CHECK-NEXT: br i1 false, label %[[BB130]], label %[[BB100:.*]]
; CHECK: [[BB100]]:
; CHECK-NEXT: br i1 false, label %[[BB134]], label %[[BB101:.*]]
; CHECK: [[BB101]]:
; CHECK-NEXT: [[LOAD102:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB103:.*]]:
; CHECK-NEXT: br label %[[BB124:.*]]
; CHECK: [[BB104:.*]]:
; CHECK-NEXT: br i1 false, label %[[BB126]], label %[[BB105:.*]]
; CHECK: [[BB105]]:
; CHECK-NEXT: br i1 false, label %[[BB130]], label %[[BB106:.*]]
; CHECK: [[BB106]]:
; CHECK-NEXT: [[LOAD107:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB108:.*]]:
; CHECK-NEXT: br label %[[BB124]]
; CHECK: [[BB109:.*]]:
; CHECK-NEXT: br i1 false, label %[[BB126]], label %[[BB110:.*]]
; CHECK: [[BB110]]:
; CHECK-NEXT: [[LOAD111:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB112:.*]]:
; CHECK-NEXT: [[LOAD113:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: br label %[[BB124]]
; CHECK: [[BB114:.*:]]
; CHECK-NEXT: [[LOAD115:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB116:.*:]]
; CHECK-NEXT: [[LOAD117:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB118:.*:]]
; CHECK-NEXT: [[LOAD119:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB120:.*:]]
; CHECK-NEXT: [[LOAD121:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB122]]:
; CHECK-NEXT: [[LOAD123:%.*]] = load i8, ptr addrspace(1) [[GETELEMENTPTR3]], align 1
; CHECK-NEXT: ret i32 0
; CHECK: [[BB124]]:
; CHECK-NEXT: [[PHI:%.*]] = phi ptr addrspace(1) [ null, %[[BB112]] ], [ [[GETELEMENTPTR3]], %[[BB108]] ], [ null, %[[BB103]] ]
; CHECK-NEXT: [[PHI125:%.*]] = phi ptr addrspace(1) [ null, %[[BB112]] ], [ null, %[[BB108]] ], [ [[GETELEMENTPTR3]], %[[BB103]] ]
; CHECK-NEXT: br label %[[BB126]]
; CHECK: [[BB126]]:
; CHECK-NEXT: [[PHI127:%.*]] = phi ptr addrspace(1) [ null, %[[BB124]] ], [ null, %[[BB98]] ], [ null, %[[BB104]] ], [ [[GETELEMENTPTR3]], %[[BB109]] ]
; CHECK-NEXT: [[PHI128:%.*]] = phi ptr addrspace(1) [ null, %[[BB124]] ], [ null, %[[BB98]] ], [ [[GETELEMENTPTR3]], %[[BB104]] ], [ null, %[[BB109]] ]
; CHECK-NEXT: [[PHI129:%.*]] = phi ptr addrspace(1) [ null, %[[BB124]] ], [ [[GETELEMENTPTR3]], %[[BB98]] ], [ null, %[[BB104]] ], [ null, %[[BB109]] ]
; CHECK-NEXT: br label %[[BB130]]
; CHECK: [[BB130]]:
; CHECK-NEXT: [[PHI131:%.*]] = phi ptr addrspace(1) [ null, %[[BB126]] ], [ null, %[[BB93]] ], [ null, %[[BB99]] ], [ [[GETELEMENTPTR3]], %[[BB105]] ]
; CHECK-NEXT: [[PHI132:%.*]] = phi ptr addrspace(1) [ null, %[[BB126]] ], [ null, %[[BB93]] ], [ [[GETELEMENTPTR3]], %[[BB99]] ], [ null, %[[BB105]] ]
; CHECK-NEXT: [[PHI133:%.*]] = phi ptr addrspace(1) [ null, %[[BB126]] ], [ [[GETELEMENTPTR3]], %[[BB93]] ], [ null, %[[BB99]] ], [ null, %[[BB105]] ]
; CHECK-NEXT: br label %[[BB134]]
; CHECK: [[BB134]]:
; CHECK-NEXT: [[PHI135:%.*]] = phi ptr addrspace(1) [ null, %[[BB130]] ], [ null, %[[BB88]] ], [ null, %[[BB94]] ], [ [[GETELEMENTPTR3]], %[[BB100]] ]
; CHECK-NEXT: [[PHI136:%.*]] = phi ptr addrspace(1) [ null, %[[BB130]] ], [ null, %[[BB88]] ], [ [[GETELEMENTPTR3]], %[[BB94]] ], [ null, %[[BB100]] ]
; CHECK-NEXT: [[PHI137:%.*]] = phi ptr addrspace(1) [ null, %[[BB130]] ], [ [[GETELEMENTPTR3]], %[[BB88]] ], [ null, %[[BB94]] ], [ null, %[[BB100]] ]
; CHECK-NEXT: br label %[[BB138]]
; CHECK: [[BB138]]:
; CHECK-NEXT: [[PHI139:%.*]] = phi ptr addrspace(1) [ null, %[[BB134]] ], [ null, %[[BB83]] ], [ null, %[[BB89]] ], [ [[GETELEMENTPTR3]], %[[BB95]] ]
; CHECK-NEXT: [[PHI140:%.*]] = phi ptr addrspace(1) [ null, %[[BB134]] ], [ null, %[[BB83]] ], [ [[GETELEMENTPTR3]], %[[BB89]] ], [ null, %[[BB95]] ]
; CHECK-NEXT: [[PHI141:%.*]] = phi ptr addrspace(1) [ null, %[[BB134]] ], [ [[GETELEMENTPTR3]], %[[BB83]] ], [ null, %[[BB89]] ], [ null, %[[BB95]] ]
; CHECK-NEXT: br label %[[BB142]]
; CHECK: [[BB142]]:
; CHECK-NEXT: [[PHI143:%.*]] = phi ptr addrspace(1) [ null, %[[BB138]] ], [ null, %[[BB72]] ], [ null, %[[BB84]] ], [ [[GETELEMENTPTR3]], %[[BB90]] ]
; CHECK-NEXT: [[PHI144:%.*]] = phi ptr addrspace(1) [ null, %[[BB138]] ], [ null, %[[BB72]] ], [ [[GETELEMENTPTR3]], %[[BB84]] ], [ null, %[[BB90]] ]
; CHECK-NEXT: [[PHI145:%.*]] = phi ptr addrspace(1) [ null, %[[BB138]] ], [ [[GETELEMENTPTR3]], %[[BB72]] ], [ null, %[[BB84]] ], [ null, %[[BB90]] ]
; CHECK-NEXT: br label %[[BB146]]
; CHECK: [[BB146]]:
; CHECK-NEXT: [[PHI147:%.*]] = phi ptr addrspace(1) [ null, %[[BB142]] ], [ null, %[[BB73]] ], [ null, %[[BB79]] ], [ [[GETELEMENTPTR3]], %[[BB85]] ]
; CHECK-NEXT: [[TMP5:%.*]] = phi <2 x ptr addrspace(1)> [ poison, %[[BB142]] ], [ [[TMP4]], %[[BB73]] ], [ poison, %[[BB79]] ], [ poison, %[[BB85]] ]
; CHECK-NEXT: br label %[[BB150]]
; CHECK: [[BB150]]:
; CHECK-NEXT: [[TMP6:%.*]] = phi <2 x ptr addrspace(1)> [ [[TMP2]], %[[BB75]] ], [ poison, %[[BB80]] ], [ zeroinitializer, %[[BB146]] ], [ [[TMP3]], %[[BB1]] ]
; CHECK-NEXT: br label %[[BB153]]
; CHECK: [[BB153]]:
; CHECK-NEXT: [[PHI154:%.*]] = phi ptr addrspace(1) [ null, %[[BB150]] ], [ [[GETELEMENTPTR3]], %[[BB76]] ]
; CHECK-NEXT: ret i32 0
;
bb:
br label %bb1
bb1: ; preds = %bb
%getelementptr = getelementptr i8, ptr addrspace(1) %arg, i64 20
%getelementptr2 = getelementptr i8, ptr addrspace(1) %arg, i64 21
%getelementptr3 = getelementptr i8, ptr addrspace(1) %arg, i64 22
br i1 false, label %bb73, label %bb150
bb4: ; No predecessors!
br i1 false, label %bb68, label %bb70
bb5: ; No predecessors!
br i1 false, label %bb64, label %bb66
bb6: ; No predecessors!
br i1 false, label %bb60, label %bb62
bb7: ; No predecessors!
br i1 false, label %bb8, label %bb58
bb8: ; preds = %bb7
br i1 false, label %bb54, label %bb56
bb9: ; No predecessors!
br i1 false, label %bb50, label %bb52
bb10: ; No predecessors!
br i1 false, label %bb46, label %bb48
bb11: ; No predecessors!
br i1 false, label %bb42, label %bb44
bb12: ; No predecessors!
br i1 false, label %bb38, label %bb40
bb13: ; No predecessors!
br i1 false, label %bb36, label %bb122
bb14: ; No predecessors!
br i1 false, label %bb32, label %bb34
bb15: ; No predecessors!
br i1 false, label %bb28, label %bb30
bb16: ; No predecessors!
br i1 false, label %bb17, label %bb26
bb17: ; preds = %bb16
br i1 false, label %bb22, label %bb24
bb18: ; No predecessors!
br i1 false, label %bb19, label %bb20
bb19: ; preds = %bb18
%load = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb20: ; preds = %bb18
%load21 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb22: ; preds = %bb17
%load23 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb24: ; preds = %bb17
%load25 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb26: ; preds = %bb16
%load27 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb28: ; preds = %bb15
%load29 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb30: ; preds = %bb15
%load31 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb32: ; preds = %bb14
%load33 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb34: ; preds = %bb14
%load35 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb36: ; preds = %bb13
%load37 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb38: ; preds = %bb12
%load39 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb40: ; preds = %bb12
%load41 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb42: ; preds = %bb11
%load43 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb44: ; preds = %bb11
%load45 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb46: ; preds = %bb10
%load47 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb48: ; preds = %bb10
%load49 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb50: ; preds = %bb9
%load51 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb52: ; preds = %bb9
%load53 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb54: ; preds = %bb8
%load55 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb56: ; preds = %bb8
%load57 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb58: ; preds = %bb7
%load59 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb60: ; preds = %bb6
%load61 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb62: ; preds = %bb6
%load63 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb64: ; preds = %bb5
%load65 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb66: ; preds = %bb5
%load67 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb68: ; preds = %bb4
%load69 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb70: ; preds = %bb4
%load71 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb72: ; No predecessors!
br i1 false, label %bb142, label %bb79
bb73: ; preds = %bb1
br i1 false, label %bb146, label %bb74
bb74: ; preds = %bb73
br i1 false, label %bb75, label %bb76
bb75: ; preds = %bb74
br label %bb150
bb76: ; preds = %bb74
br i1 false, label %bb153, label %bb77
bb77: ; preds = %bb76
%load78 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb79: ; preds = %bb72
br i1 false, label %bb146, label %bb81
bb80: ; No predecessors!
br label %bb150
bb81: ; preds = %bb79
%load82 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb83: ; No predecessors!
br label %bb138
bb84: ; No predecessors!
br i1 false, label %bb142, label %bb85
bb85: ; preds = %bb84
br i1 false, label %bb146, label %bb86
bb86: ; preds = %bb85
%load87 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb88: ; No predecessors!
br label %bb134
bb89: ; No predecessors!
br i1 false, label %bb138, label %bb90
bb90: ; preds = %bb89
br i1 false, label %bb142, label %bb91
bb91: ; preds = %bb90
%load92 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb93: ; No predecessors!
br label %bb130
bb94: ; No predecessors!
br i1 false, label %bb134, label %bb95
bb95: ; preds = %bb94
br i1 false, label %bb138, label %bb96
bb96: ; preds = %bb95
%load97 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb98: ; No predecessors!
br label %bb126
bb99: ; No predecessors!
br i1 false, label %bb130, label %bb100
bb100: ; preds = %bb99
br i1 false, label %bb134, label %bb101
bb101: ; preds = %bb100
%load102 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb103: ; No predecessors!
br label %bb124
bb104: ; No predecessors!
br i1 false, label %bb126, label %bb105
bb105: ; preds = %bb104
br i1 false, label %bb130, label %bb106
bb106: ; preds = %bb105
%load107 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb108: ; No predecessors!
br label %bb124
bb109: ; No predecessors!
br i1 false, label %bb126, label %bb110
bb110: ; preds = %bb109
%load111 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb112: ; No predecessors!
%load113 = load i8, ptr addrspace(1) %getelementptr3, align 1
br label %bb124
bb114: ; No predecessors!
%load115 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb116: ; No predecessors!
%load117 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb118: ; No predecessors!
%load119 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb120: ; No predecessors!
%load121 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb122: ; preds = %bb13
%load123 = load i8, ptr addrspace(1) %getelementptr3, align 1
ret i32 0
bb124: ; preds = %bb112, %bb108, %bb103
%phi = phi ptr addrspace(1) [ null, %bb112 ], [ %getelementptr3, %bb108 ], [ null, %bb103 ]
%phi125 = phi ptr addrspace(1) [ null, %bb112 ], [ null, %bb108 ], [ %getelementptr3, %bb103 ]
br label %bb126
bb126: ; preds = %bb124, %bb109, %bb104, %bb98
%phi127 = phi ptr addrspace(1) [ null, %bb124 ], [ null, %bb98 ], [ null, %bb104 ], [ %getelementptr3, %bb109 ]
%phi128 = phi ptr addrspace(1) [ null, %bb124 ], [ null, %bb98 ], [ %getelementptr3, %bb104 ], [ null, %bb109 ]
%phi129 = phi ptr addrspace(1) [ null, %bb124 ], [ %getelementptr3, %bb98 ], [ null, %bb104 ], [ null, %bb109 ]
br label %bb130
bb130: ; preds = %bb126, %bb105, %bb99, %bb93
%phi131 = phi ptr addrspace(1) [ null, %bb126 ], [ null, %bb93 ], [ null, %bb99 ], [ %getelementptr3, %bb105 ]
%phi132 = phi ptr addrspace(1) [ null, %bb126 ], [ null, %bb93 ], [ %getelementptr3, %bb99 ], [ null, %bb105 ]
%phi133 = phi ptr addrspace(1) [ null, %bb126 ], [ %getelementptr3, %bb93 ], [ null, %bb99 ], [ null, %bb105 ]
br label %bb134
bb134: ; preds = %bb130, %bb100, %bb94, %bb88
%phi135 = phi ptr addrspace(1) [ null, %bb130 ], [ null, %bb88 ], [ null, %bb94 ], [ %getelementptr3, %bb100 ]
%phi136 = phi ptr addrspace(1) [ null, %bb130 ], [ null, %bb88 ], [ %getelementptr3, %bb94 ], [ null, %bb100 ]
%phi137 = phi ptr addrspace(1) [ null, %bb130 ], [ %getelementptr3, %bb88 ], [ null, %bb94 ], [ null, %bb100 ]
br label %bb138
bb138: ; preds = %bb134, %bb95, %bb89, %bb83
%phi139 = phi ptr addrspace(1) [ null, %bb134 ], [ null, %bb83 ], [ null, %bb89 ], [ %getelementptr3, %bb95 ]
%phi140 = phi ptr addrspace(1) [ null, %bb134 ], [ null, %bb83 ], [ %getelementptr3, %bb89 ], [ null, %bb95 ]
%phi141 = phi ptr addrspace(1) [ null, %bb134 ], [ %getelementptr3, %bb83 ], [ null, %bb89 ], [ null, %bb95 ]
br label %bb142
bb142: ; preds = %bb138, %bb90, %bb84, %bb72
%phi143 = phi ptr addrspace(1) [ null, %bb138 ], [ null, %bb72 ], [ null, %bb84 ], [ %getelementptr3, %bb90 ]
%phi144 = phi ptr addrspace(1) [ null, %bb138 ], [ null, %bb72 ], [ %getelementptr3, %bb84 ], [ null, %bb90 ]
%phi145 = phi ptr addrspace(1) [ null, %bb138 ], [ %getelementptr3, %bb72 ], [ null, %bb84 ], [ null, %bb90 ]
br label %bb146
bb146: ; preds = %bb142, %bb85, %bb79, %bb73
%phi147 = phi ptr addrspace(1) [ null, %bb142 ], [ null, %bb73 ], [ null, %bb79 ], [ %getelementptr3, %bb85 ]
%phi148 = phi ptr addrspace(1) [ null, %bb142 ], [ null, %bb73 ], [ %getelementptr3, %bb79 ], [ null, %bb85 ]
%phi149 = phi ptr addrspace(1) [ null, %bb142 ], [ %getelementptr3, %bb73 ], [ null, %bb79 ], [ null, %bb85 ]
br label %bb150
bb150: ; preds = %bb146, %bb80, %bb75, %bb1
%phi151 = phi ptr addrspace(1) [ %getelementptr2, %bb75 ], [ %getelementptr3, %bb80 ], [ null, %bb146 ], [ %getelementptr, %bb1 ]
%phi152 = phi ptr addrspace(1) [ %getelementptr3, %bb75 ], [ null, %bb80 ], [ null, %bb146 ], [ %getelementptr2, %bb1 ]
br label %bb153
bb153: ; preds = %bb150, %bb76
%phi154 = phi ptr addrspace(1) [ null, %bb150 ], [ %getelementptr3, %bb76 ]
ret i32 0
}