      program abc158b
      implicit none
      integer :: a(3,3)
      integer :: n
      integer,allocatable :: b(:)
      integer :: i,j,k
      integer :: flag(3,3) = 0
      
      read*,a(1,:)
      read*,a(2,:)
      read*,a(3,:)
      
      read*,n
      allocate( b(n) )
      
      do i = 1,n
        read*,b(i)
      end do
      
      
      
      !check A
      do i = 1,3
        do j = 1,3
          do k = 1,n
            if( a(i,j)==b(k) ) flag(i,j) = 1
          end do
        end do
      end do
      
      
      do i = 1,3
        if( sum( flag(i,:) )==3 )then
          print*,'Yes';stop
        end if
        
        if( sum(flag(:,i) )==3 )then
          print*,'Yes';stop
        end if
      end do
      
      if( flag(1,1)+flag(2,2)+flag(3,3)==3 )then
        print*,'Yes';stop
      end if
      if( flag(3,1)+flag(2,2)+flag(1,3)==3 )then
        print*,'Yes';stop
      end if
      
      print*,'No'
      
      
      end
      
; ModuleID = 'FIRModule'
source_filename = "FIRModule"
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"

@_QFEa = internal global [3 x [3 x i32]] undef
@_QFEb.0 = internal unnamed_addr global ptr null
@_QFEflag.0 = internal unnamed_addr global i1 false
@_QFEflag.1 = internal unnamed_addr global i1 false
@_QFEflag.2 = internal unnamed_addr global i1 false
@_QFEflag.3 = internal unnamed_addr global i1 false
@_QFEflag.4 = internal unnamed_addr global i1 false
@_QFEflag.5 = internal unnamed_addr global i1 false
@_QFEflag.6 = internal unnamed_addr global i1 false
@_QFEflag.7 = internal unnamed_addr global i1 false
@_QFEflag.8 = internal unnamed_addr global i1 false
@_QQcl.596bd56d7bc0a3733e1f070e50ffc9bc = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_2268/source.f\00"
@_QQcl.596573 = linkonce constant [3 x i8] c"Yes"
@_QQcl.4E6F = linkonce constant [2 x i8] c"No"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #0

define void @_QQmain() local_unnamed_addr {
  %1 = alloca { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, align 8
  %2 = alloca { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, align 8
  %3 = alloca { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, align 8
  %4 = alloca i32, align 4
  %5 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.596bd56d7bc0a3733e1f070e50ffc9bc, i32 9)
  store ptr @_QFEa, ptr %3, align 8, !tbaa !3
  %.fca.1.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %3, i64 0, i32 1
  store i64 4, ptr %.fca.1.gep, align 8, !tbaa !3
  %.fca.2.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %3, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep, align 8, !tbaa !3
  %.fca.3.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %3, i64 0, i32 3
  store i8 1, ptr %.fca.3.gep, align 4, !tbaa !3
  %.fca.4.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %3, i64 0, i32 4
  store i8 9, ptr %.fca.4.gep, align 1, !tbaa !3
  %.fca.5.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %3, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep, align 2, !tbaa !3
  %.fca.6.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %3, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep, align 1, !tbaa !3
  %.fca.7.0.0.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %3, i64 0, i32 7, i64 0, i64 0
  store i64 1, ptr %.fca.7.0.0.gep, align 8, !tbaa !3
  %.fca.7.0.1.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %3, i64 0, i32 7, i64 0, i64 1
  store i64 3, ptr %.fca.7.0.1.gep, align 8, !tbaa !3
  %.fca.7.0.2.gep = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %3, i64 0, i32 7, i64 0, i64 2
  store i64 12, ptr %.fca.7.0.2.gep, align 8, !tbaa !3
  %6 = call i1 @_FortranAioInputDescriptor(ptr %5, ptr nonnull %3)
  %7 = call i32 @_FortranAioEndIoStatement(ptr %5)
  %8 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.596bd56d7bc0a3733e1f070e50ffc9bc, i32 10)
  store ptr getelementptr inbounds ([3 x [3 x i32]], ptr @_QFEa, i64 0, i64 0, i64 1), ptr %2, align 8, !tbaa !3
  %.fca.1.gep16 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %2, i64 0, i32 1
  store i64 4, ptr %.fca.1.gep16, align 8, !tbaa !3
  %.fca.2.gep17 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %2, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep17, align 8, !tbaa !3
  %.fca.3.gep18 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %2, i64 0, i32 3
  store i8 1, ptr %.fca.3.gep18, align 4, !tbaa !3
  %.fca.4.gep19 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %2, i64 0, i32 4
  store i8 9, ptr %.fca.4.gep19, align 1, !tbaa !3
  %.fca.5.gep20 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %2, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep20, align 2, !tbaa !3
  %.fca.6.gep21 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %2, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep21, align 1, !tbaa !3
  %.fca.7.0.0.gep22 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %2, i64 0, i32 7, i64 0, i64 0
  store i64 1, ptr %.fca.7.0.0.gep22, align 8, !tbaa !3
  %.fca.7.0.1.gep23 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %2, i64 0, i32 7, i64 0, i64 1
  store i64 3, ptr %.fca.7.0.1.gep23, align 8, !tbaa !3
  %.fca.7.0.2.gep24 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %2, i64 0, i32 7, i64 0, i64 2
  store i64 12, ptr %.fca.7.0.2.gep24, align 8, !tbaa !3
  %9 = call i1 @_FortranAioInputDescriptor(ptr %8, ptr nonnull %2)
  %10 = call i32 @_FortranAioEndIoStatement(ptr %8)
  %11 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.596bd56d7bc0a3733e1f070e50ffc9bc, i32 11)
  store ptr getelementptr inbounds ([3 x [3 x i32]], ptr @_QFEa, i64 0, i64 0, i64 2), ptr %1, align 8, !tbaa !3
  %.fca.1.gep26 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 1
  store i64 4, ptr %.fca.1.gep26, align 8, !tbaa !3
  %.fca.2.gep27 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 2
  store i32 20180515, ptr %.fca.2.gep27, align 8, !tbaa !3
  %.fca.3.gep28 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 3
  store i8 1, ptr %.fca.3.gep28, align 4, !tbaa !3
  %.fca.4.gep29 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 4
  store i8 9, ptr %.fca.4.gep29, align 1, !tbaa !3
  %.fca.5.gep30 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 5
  store i8 0, ptr %.fca.5.gep30, align 2, !tbaa !3
  %.fca.6.gep31 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 6
  store i8 0, ptr %.fca.6.gep31, align 1, !tbaa !3
  %.fca.7.0.0.gep32 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 7, i64 0, i64 0
  store i64 1, ptr %.fca.7.0.0.gep32, align 8, !tbaa !3
  %.fca.7.0.1.gep33 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 7, i64 0, i64 1
  store i64 3, ptr %.fca.7.0.1.gep33, align 8, !tbaa !3
  %.fca.7.0.2.gep34 = getelementptr inbounds { ptr, i64, i32, i8, i8, i8, i8, [1 x [3 x i64]] }, ptr %1, i64 0, i32 7, i64 0, i64 2
  store i64 12, ptr %.fca.7.0.2.gep34, align 8, !tbaa !3
  %12 = call i1 @_FortranAioInputDescriptor(ptr %11, ptr nonnull %1)
  %13 = call i32 @_FortranAioEndIoStatement(ptr %11)
  %14 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.596bd56d7bc0a3733e1f070e50ffc9bc, i32 13)
  %15 = call i1 @_FortranAioInputInteger(ptr %14, ptr nonnull %4, i32 4)
  %16 = call i32 @_FortranAioEndIoStatement(ptr %14)
  %17 = load i32, ptr %4, align 4, !tbaa !7
  %18 = call i32 @llvm.smax.i32(i32 %17, i32 0)
  %19 = zext i32 %18 to i64
  %20 = shl nuw nsw i64 %19, 2
  %21 = call ptr @malloc(i64 %20)
  store ptr %21, ptr @_QFEb.0, align 8, !tbaa !3
  %22 = sext i32 %17 to i64
  %23 = icmp sgt i32 %17, 0
  br i1 %23, label %.lr.ph, label %.preheader

.preheader204:                                    ; preds = %.lr.ph
  %.pre = load i32, ptr %4, align 4, !tbaa !7
  %.unpack.pre = load ptr, ptr @_QFEb.0, align 8
  %.pre235 = sext i32 %.pre to i64
  %24 = icmp sgt i32 %.pre, 0
  br i1 %24, label %.preheader203.us.preheader, label %.preheader

.preheader203.us.preheader:                       ; preds = %.preheader204
  %25 = load i32, ptr @_QFEa, align 16, !tbaa !7
  %min.iters.check = icmp ult i32 %.pre, 8
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.preheader203.us.preheader
  %n.vec = and i64 %.pre235, -8
  %ind.end = or i64 %n.vec, 1
  %broadcast.splatinsert = insertelement <4 x i32> poison, i32 %25, i64 0
  %broadcast.splat = shufflevector <4 x i32> %broadcast.splatinsert, <4 x i32> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert248 = insertelement <4 x i32> poison, i32 %25, i64 0
  %broadcast.splat249 = shufflevector <4 x i32> %broadcast.splatinsert248, <4 x i32> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %46, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %46 ]
  %26 = getelementptr i32, ptr %.unpack.pre, i64 %index
  %wide.load = load <4 x i32>, ptr %26, align 4, !tbaa !7
  %27 = getelementptr i32, ptr %26, i64 4
  %wide.load247 = load <4 x i32>, ptr %27, align 4, !tbaa !7
  %28 = icmp eq <4 x i32> %broadcast.splat, %wide.load
  %29 = icmp eq <4 x i32> %broadcast.splat249, %wide.load247
  %30 = extractelement <4 x i1> %28, i64 0
  %31 = extractelement <4 x i1> %28, i64 1
  %32 = or i1 %30, %31
  %33 = extractelement <4 x i1> %28, i64 2
  %34 = or i1 %32, %33
  %35 = extractelement <4 x i1> %28, i64 3
  %36 = or i1 %34, %35
  %37 = extractelement <4 x i1> %29, i64 0
  %38 = or i1 %36, %37
  %39 = extractelement <4 x i1> %29, i64 1
  %40 = or i1 %38, %39
  %41 = extractelement <4 x i1> %29, i64 2
  %42 = or i1 %40, %41
  %43 = extractelement <4 x i1> %29, i64 3
  %44 = or i1 %42, %43
  br i1 %44, label %45, label %46

45:                                               ; preds = %vector.body
  store i1 true, ptr @_QFEflag.0, align 1
  br label %46

46:                                               ; preds = %vector.body, %45
  %index.next = add nuw i64 %index, 8
  %47 = icmp eq i64 %index.next, %n.vec
  br i1 %47, label %middle.block, label %vector.body, !llvm.loop !9

middle.block:                                     ; preds = %46
  %cmp.n = icmp eq i64 %n.vec, %.pre235
  br i1 %cmp.n, label %._crit_edge.us.us, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %.preheader203.us.preheader, %middle.block
  %indvars.iv212.ph = phi i64 [ 1, %.preheader203.us.preheader ], [ %ind.end, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %53
  %indvars.iv212 = phi i64 [ %indvars.iv.next213, %53 ], [ %indvars.iv212.ph, %scalar.ph.preheader ]
  %48 = add i64 %indvars.iv212, -1
  %49 = getelementptr i32, ptr %.unpack.pre, i64 %48
  %50 = load i32, ptr %49, align 4, !tbaa !7
  %51 = icmp eq i32 %25, %50
  br i1 %51, label %52, label %53

52:                                               ; preds = %scalar.ph
  store i1 true, ptr @_QFEflag.0, align 1
  br label %53

53:                                               ; preds = %52, %scalar.ph
  %indvars.iv.next213 = add nuw nsw i64 %indvars.iv212, 1
  %exitcond215.not = icmp eq i64 %indvars.iv212, %.pre235
  br i1 %exitcond215.not, label %._crit_edge.us.us, label %scalar.ph, !llvm.loop !12

._crit_edge.us.us:                                ; preds = %53, %middle.block
  %54 = load i32, ptr getelementptr inbounds ([3 x [3 x i32]], ptr @_QFEa, i64 0, i64 1, i64 0), align 4, !tbaa !7
  %min.iters.check266 = icmp ult i32 %.pre, 8
  br i1 %min.iters.check266, label %scalar.ph265.preheader, label %vector.ph267

vector.ph267:                                     ; preds = %._crit_edge.us.us
  %n.vec269 = and i64 %.pre235, -8
  %ind.end270 = or i64 %n.vec269, 1
  %broadcast.splatinsert278 = insertelement <4 x i32> poison, i32 %54, i64 0
  %broadcast.splat279 = shufflevector <4 x i32> %broadcast.splatinsert278, <4 x i32> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert280 = insertelement <4 x i32> poison, i32 %54, i64 0
  %broadcast.splat281 = shufflevector <4 x i32> %broadcast.splatinsert280, <4 x i32> poison, <4 x i32> zeroinitializer
  br label %vector.body273

vector.body273:                                   ; preds = %75, %vector.ph267
  %index274 = phi i64 [ 0, %vector.ph267 ], [ %index.next298, %75 ]
  %55 = getelementptr i32, ptr %.unpack.pre, i64 %index274
  %wide.load276 = load <4 x i32>, ptr %55, align 4, !tbaa !7
  %56 = getelementptr i32, ptr %55, i64 4
  %wide.load277 = load <4 x i32>, ptr %56, align 4, !tbaa !7
  %57 = icmp eq <4 x i32> %broadcast.splat279, %wide.load276
  %58 = icmp eq <4 x i32> %broadcast.splat281, %wide.load277
  %59 = extractelement <4 x i1> %57, i64 0
  %60 = extractelement <4 x i1> %57, i64 1
  %61 = or i1 %59, %60
  %62 = extractelement <4 x i1> %57, i64 2
  %63 = or i1 %61, %62
  %64 = extractelement <4 x i1> %57, i64 3
  %65 = or i1 %63, %64
  %66 = extractelement <4 x i1> %58, i64 0
  %67 = or i1 %65, %66
  %68 = extractelement <4 x i1> %58, i64 1
  %69 = or i1 %67, %68
  %70 = extractelement <4 x i1> %58, i64 2
  %71 = or i1 %69, %70
  %72 = extractelement <4 x i1> %58, i64 3
  %73 = or i1 %71, %72
  br i1 %73, label %74, label %75

74:                                               ; preds = %vector.body273
  store i1 true, ptr @_QFEflag.3, align 1
  br label %75

75:                                               ; preds = %vector.body273, %74
  %index.next298 = add nuw i64 %index274, 8
  %76 = icmp eq i64 %index.next298, %n.vec269
  br i1 %76, label %middle.block264, label %vector.body273, !llvm.loop !13

middle.block264:                                  ; preds = %75
  %cmp.n272 = icmp eq i64 %n.vec269, %.pre235
  br i1 %cmp.n272, label %._crit_edge.us.us.1, label %scalar.ph265.preheader

scalar.ph265.preheader:                           ; preds = %._crit_edge.us.us, %middle.block264
  %indvars.iv212.1.ph = phi i64 [ 1, %._crit_edge.us.us ], [ %ind.end270, %middle.block264 ]
  br label %scalar.ph265

scalar.ph265:                                     ; preds = %scalar.ph265.preheader, %82
  %indvars.iv212.1 = phi i64 [ %indvars.iv.next213.1, %82 ], [ %indvars.iv212.1.ph, %scalar.ph265.preheader ]
  %77 = add i64 %indvars.iv212.1, -1
  %78 = getelementptr i32, ptr %.unpack.pre, i64 %77
  %79 = load i32, ptr %78, align 4, !tbaa !7
  %80 = icmp eq i32 %54, %79
  br i1 %80, label %81, label %82

81:                                               ; preds = %scalar.ph265
  store i1 true, ptr @_QFEflag.3, align 1
  br label %82

82:                                               ; preds = %81, %scalar.ph265
  %indvars.iv.next213.1 = add nuw nsw i64 %indvars.iv212.1, 1
  %exitcond215.1.not = icmp eq i64 %indvars.iv212.1, %.pre235
  br i1 %exitcond215.1.not, label %._crit_edge.us.us.1, label %scalar.ph265, !llvm.loop !14

._crit_edge.us.us.1:                              ; preds = %82, %middle.block264
  %83 = load i32, ptr getelementptr inbounds ([3 x [3 x i32]], ptr @_QFEa, i64 0, i64 2, i64 0), align 8, !tbaa !7
  %min.iters.check301 = icmp ult i32 %.pre, 8
  br i1 %min.iters.check301, label %scalar.ph300.preheader, label %vector.ph302

vector.ph302:                                     ; preds = %._crit_edge.us.us.1
  %n.vec304 = and i64 %.pre235, -8
  %ind.end305 = or i64 %n.vec304, 1
  %broadcast.splatinsert313 = insertelement <4 x i32> poison, i32 %83, i64 0
  %broadcast.splat314 = shufflevector <4 x i32> %broadcast.splatinsert313, <4 x i32> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert315 = insertelement <4 x i32> poison, i32 %83, i64 0
  %broadcast.splat316 = shufflevector <4 x i32> %broadcast.splatinsert315, <4 x i32> poison, <4 x i32> zeroinitializer
  br label %vector.body308

vector.body308:                                   ; preds = %104, %vector.ph302
  %index309 = phi i64 [ 0, %vector.ph302 ], [ %index.next333, %104 ]
  %84 = getelementptr i32, ptr %.unpack.pre, i64 %index309
  %wide.load311 = load <4 x i32>, ptr %84, align 4, !tbaa !7
  %85 = getelementptr i32, ptr %84, i64 4
  %wide.load312 = load <4 x i32>, ptr %85, align 4, !tbaa !7
  %86 = icmp eq <4 x i32> %broadcast.splat314, %wide.load311
  %87 = icmp eq <4 x i32> %broadcast.splat316, %wide.load312
  %88 = extractelement <4 x i1> %86, i64 0
  %89 = extractelement <4 x i1> %86, i64 1
  %90 = or i1 %88, %89
  %91 = extractelement <4 x i1> %86, i64 2
  %92 = or i1 %90, %91
  %93 = extractelement <4 x i1> %86, i64 3
  %94 = or i1 %92, %93
  %95 = extractelement <4 x i1> %87, i64 0
  %96 = or i1 %94, %95
  %97 = extractelement <4 x i1> %87, i64 1
  %98 = or i1 %96, %97
  %99 = extractelement <4 x i1> %87, i64 2
  %100 = or i1 %98, %99
  %101 = extractelement <4 x i1> %87, i64 3
  %102 = or i1 %100, %101
  br i1 %102, label %103, label %104

103:                                              ; preds = %vector.body308
  store i1 true, ptr @_QFEflag.6, align 1
  br label %104

104:                                              ; preds = %vector.body308, %103
  %index.next333 = add nuw i64 %index309, 8
  %105 = icmp eq i64 %index.next333, %n.vec304
  br i1 %105, label %middle.block299, label %vector.body308, !llvm.loop !15

middle.block299:                                  ; preds = %104
  %cmp.n307 = icmp eq i64 %n.vec304, %.pre235
  br i1 %cmp.n307, label %._crit_edge.us.us.2, label %scalar.ph300.preheader

scalar.ph300.preheader:                           ; preds = %._crit_edge.us.us.1, %middle.block299
  %indvars.iv212.2.ph = phi i64 [ 1, %._crit_edge.us.us.1 ], [ %ind.end305, %middle.block299 ]
  br label %scalar.ph300

scalar.ph300:                                     ; preds = %scalar.ph300.preheader, %111
  %indvars.iv212.2 = phi i64 [ %indvars.iv.next213.2, %111 ], [ %indvars.iv212.2.ph, %scalar.ph300.preheader ]
  %106 = add i64 %indvars.iv212.2, -1
  %107 = getelementptr i32, ptr %.unpack.pre, i64 %106
  %108 = load i32, ptr %107, align 4, !tbaa !7
  %109 = icmp eq i32 %83, %108
  br i1 %109, label %110, label %111

110:                                              ; preds = %scalar.ph300
  store i1 true, ptr @_QFEflag.6, align 1
  br label %111

111:                                              ; preds = %110, %scalar.ph300
  %indvars.iv.next213.2 = add nuw nsw i64 %indvars.iv212.2, 1
  %exitcond215.2.not = icmp eq i64 %indvars.iv212.2, %.pre235
  br i1 %exitcond215.2.not, label %._crit_edge.us.us.2, label %scalar.ph300, !llvm.loop !16

._crit_edge.us.us.2:                              ; preds = %111, %middle.block299
  %112 = load i32, ptr getelementptr inbounds ([3 x [3 x i32]], ptr @_QFEa, i64 0, i64 0, i64 1), align 4, !tbaa !7
  %min.iters.check336 = icmp ult i32 %.pre, 8
  br i1 %min.iters.check336, label %scalar.ph335.preheader, label %vector.ph337

vector.ph337:                                     ; preds = %._crit_edge.us.us.2
  %n.vec339 = and i64 %.pre235, -8
  %ind.end340 = or i64 %n.vec339, 1
  %broadcast.splatinsert348 = insertelement <4 x i32> poison, i32 %112, i64 0
  %broadcast.splat349 = shufflevector <4 x i32> %broadcast.splatinsert348, <4 x i32> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert350 = insertelement <4 x i32> poison, i32 %112, i64 0
  %broadcast.splat351 = shufflevector <4 x i32> %broadcast.splatinsert350, <4 x i32> poison, <4 x i32> zeroinitializer
  br label %vector.body343

vector.body343:                                   ; preds = %133, %vector.ph337
  %index344 = phi i64 [ 0, %vector.ph337 ], [ %index.next368, %133 ]
  %113 = getelementptr i32, ptr %.unpack.pre, i64 %index344
  %wide.load346 = load <4 x i32>, ptr %113, align 4, !tbaa !7
  %114 = getelementptr i32, ptr %113, i64 4
  %wide.load347 = load <4 x i32>, ptr %114, align 4, !tbaa !7
  %115 = icmp eq <4 x i32> %broadcast.splat349, %wide.load346
  %116 = icmp eq <4 x i32> %broadcast.splat351, %wide.load347
  %117 = extractelement <4 x i1> %115, i64 0
  %118 = extractelement <4 x i1> %115, i64 1
  %119 = or i1 %117, %118
  %120 = extractelement <4 x i1> %115, i64 2
  %121 = or i1 %119, %120
  %122 = extractelement <4 x i1> %115, i64 3
  %123 = or i1 %121, %122
  %124 = extractelement <4 x i1> %116, i64 0
  %125 = or i1 %123, %124
  %126 = extractelement <4 x i1> %116, i64 1
  %127 = or i1 %125, %126
  %128 = extractelement <4 x i1> %116, i64 2
  %129 = or i1 %127, %128
  %130 = extractelement <4 x i1> %116, i64 3
  %131 = or i1 %129, %130
  br i1 %131, label %132, label %133

132:                                              ; preds = %vector.body343
  store i1 true, ptr @_QFEflag.1, align 1
  br label %133

133:                                              ; preds = %vector.body343, %132
  %index.next368 = add nuw i64 %index344, 8
  %134 = icmp eq i64 %index.next368, %n.vec339
  br i1 %134, label %middle.block334, label %vector.body343, !llvm.loop !17

middle.block334:                                  ; preds = %133
  %cmp.n342 = icmp eq i64 %n.vec339, %.pre235
  br i1 %cmp.n342, label %._crit_edge.us.us.1227, label %scalar.ph335.preheader

scalar.ph335.preheader:                           ; preds = %._crit_edge.us.us.2, %middle.block334
  %indvars.iv212.1224.ph = phi i64 [ 1, %._crit_edge.us.us.2 ], [ %ind.end340, %middle.block334 ]
  br label %scalar.ph335

scalar.ph335:                                     ; preds = %scalar.ph335.preheader, %140
  %indvars.iv212.1224 = phi i64 [ %indvars.iv.next213.1225, %140 ], [ %indvars.iv212.1224.ph, %scalar.ph335.preheader ]
  %135 = add i64 %indvars.iv212.1224, -1
  %136 = getelementptr i32, ptr %.unpack.pre, i64 %135
  %137 = load i32, ptr %136, align 4, !tbaa !7
  %138 = icmp eq i32 %112, %137
  br i1 %138, label %139, label %140

139:                                              ; preds = %scalar.ph335
  store i1 true, ptr @_QFEflag.1, align 1
  br label %140

140:                                              ; preds = %139, %scalar.ph335
  %indvars.iv.next213.1225 = add nuw nsw i64 %indvars.iv212.1224, 1
  %exitcond215.1226.not = icmp eq i64 %indvars.iv212.1224, %.pre235
  br i1 %exitcond215.1226.not, label %._crit_edge.us.us.1227, label %scalar.ph335, !llvm.loop !18

._crit_edge.us.us.1227:                           ; preds = %140, %middle.block334
  %141 = load i32, ptr getelementptr inbounds ([3 x [3 x i32]], ptr @_QFEa, i64 0, i64 1, i64 1), align 16, !tbaa !7
  %min.iters.check371 = icmp ult i32 %.pre, 8
  br i1 %min.iters.check371, label %scalar.ph370.preheader, label %vector.ph372

vector.ph372:                                     ; preds = %._crit_edge.us.us.1227
  %n.vec374 = and i64 %.pre235, -8
  %ind.end375 = or i64 %n.vec374, 1
  %broadcast.splatinsert383 = insertelement <4 x i32> poison, i32 %141, i64 0
  %broadcast.splat384 = shufflevector <4 x i32> %broadcast.splatinsert383, <4 x i32> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert385 = insertelement <4 x i32> poison, i32 %141, i64 0
  %broadcast.splat386 = shufflevector <4 x i32> %broadcast.splatinsert385, <4 x i32> poison, <4 x i32> zeroinitializer
  br label %vector.body378

vector.body378:                                   ; preds = %162, %vector.ph372
  %index379 = phi i64 [ 0, %vector.ph372 ], [ %index.next403, %162 ]
  %142 = getelementptr i32, ptr %.unpack.pre, i64 %index379
  %wide.load381 = load <4 x i32>, ptr %142, align 4, !tbaa !7
  %143 = getelementptr i32, ptr %142, i64 4
  %wide.load382 = load <4 x i32>, ptr %143, align 4, !tbaa !7
  %144 = icmp eq <4 x i32> %broadcast.splat384, %wide.load381
  %145 = icmp eq <4 x i32> %broadcast.splat386, %wide.load382
  %146 = extractelement <4 x i1> %144, i64 0
  %147 = extractelement <4 x i1> %144, i64 1
  %148 = or i1 %146, %147
  %149 = extractelement <4 x i1> %144, i64 2
  %150 = or i1 %148, %149
  %151 = extractelement <4 x i1> %144, i64 3
  %152 = or i1 %150, %151
  %153 = extractelement <4 x i1> %145, i64 0
  %154 = or i1 %152, %153
  %155 = extractelement <4 x i1> %145, i64 1
  %156 = or i1 %154, %155
  %157 = extractelement <4 x i1> %145, i64 2
  %158 = or i1 %156, %157
  %159 = extractelement <4 x i1> %145, i64 3
  %160 = or i1 %158, %159
  br i1 %160, label %161, label %162

161:                                              ; preds = %vector.body378
  store i1 true, ptr @_QFEflag.4, align 1
  br label %162

162:                                              ; preds = %vector.body378, %161
  %index.next403 = add nuw i64 %index379, 8
  %163 = icmp eq i64 %index.next403, %n.vec374
  br i1 %163, label %middle.block369, label %vector.body378, !llvm.loop !19

middle.block369:                                  ; preds = %162
  %cmp.n377 = icmp eq i64 %n.vec374, %.pre235
  br i1 %cmp.n377, label %._crit_edge.us.us.1.1, label %scalar.ph370.preheader

scalar.ph370.preheader:                           ; preds = %._crit_edge.us.us.1227, %middle.block369
  %indvars.iv212.1.1.ph = phi i64 [ 1, %._crit_edge.us.us.1227 ], [ %ind.end375, %middle.block369 ]
  br label %scalar.ph370

scalar.ph370:                                     ; preds = %scalar.ph370.preheader, %169
  %indvars.iv212.1.1 = phi i64 [ %indvars.iv.next213.1.1, %169 ], [ %indvars.iv212.1.1.ph, %scalar.ph370.preheader ]
  %164 = add i64 %indvars.iv212.1.1, -1
  %165 = getelementptr i32, ptr %.unpack.pre, i64 %164
  %166 = load i32, ptr %165, align 4, !tbaa !7
  %167 = icmp eq i32 %141, %166
  br i1 %167, label %168, label %169

168:                                              ; preds = %scalar.ph370
  store i1 true, ptr @_QFEflag.4, align 1
  br label %169

169:                                              ; preds = %168, %scalar.ph370
  %indvars.iv.next213.1.1 = add nuw nsw i64 %indvars.iv212.1.1, 1
  %exitcond215.1.1.not = icmp eq i64 %indvars.iv212.1.1, %.pre235
  br i1 %exitcond215.1.1.not, label %._crit_edge.us.us.1.1, label %scalar.ph370, !llvm.loop !20

._crit_edge.us.us.1.1:                            ; preds = %169, %middle.block369
  %170 = load i32, ptr getelementptr inbounds ([3 x [3 x i32]], ptr @_QFEa, i64 0, i64 2, i64 1), align 4, !tbaa !7
  %min.iters.check406 = icmp ult i32 %.pre, 8
  br i1 %min.iters.check406, label %scalar.ph405.preheader, label %vector.ph407

vector.ph407:                                     ; preds = %._crit_edge.us.us.1.1
  %n.vec409 = and i64 %.pre235, -8
  %ind.end410 = or i64 %n.vec409, 1
  %broadcast.splatinsert418 = insertelement <4 x i32> poison, i32 %170, i64 0
  %broadcast.splat419 = shufflevector <4 x i32> %broadcast.splatinsert418, <4 x i32> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert420 = insertelement <4 x i32> poison, i32 %170, i64 0
  %broadcast.splat421 = shufflevector <4 x i32> %broadcast.splatinsert420, <4 x i32> poison, <4 x i32> zeroinitializer
  br label %vector.body413

vector.body413:                                   ; preds = %191, %vector.ph407
  %index414 = phi i64 [ 0, %vector.ph407 ], [ %index.next438, %191 ]
  %171 = getelementptr i32, ptr %.unpack.pre, i64 %index414
  %wide.load416 = load <4 x i32>, ptr %171, align 4, !tbaa !7
  %172 = getelementptr i32, ptr %171, i64 4
  %wide.load417 = load <4 x i32>, ptr %172, align 4, !tbaa !7
  %173 = icmp eq <4 x i32> %broadcast.splat419, %wide.load416
  %174 = icmp eq <4 x i32> %broadcast.splat421, %wide.load417
  %175 = extractelement <4 x i1> %173, i64 0
  %176 = extractelement <4 x i1> %173, i64 1
  %177 = or i1 %175, %176
  %178 = extractelement <4 x i1> %173, i64 2
  %179 = or i1 %177, %178
  %180 = extractelement <4 x i1> %173, i64 3
  %181 = or i1 %179, %180
  %182 = extractelement <4 x i1> %174, i64 0
  %183 = or i1 %181, %182
  %184 = extractelement <4 x i1> %174, i64 1
  %185 = or i1 %183, %184
  %186 = extractelement <4 x i1> %174, i64 2
  %187 = or i1 %185, %186
  %188 = extractelement <4 x i1> %174, i64 3
  %189 = or i1 %187, %188
  br i1 %189, label %190, label %191

190:                                              ; preds = %vector.body413
  store i1 true, ptr @_QFEflag.7, align 1
  br label %191

191:                                              ; preds = %vector.body413, %190
  %index.next438 = add nuw i64 %index414, 8
  %192 = icmp eq i64 %index.next438, %n.vec409
  br i1 %192, label %middle.block404, label %vector.body413, !llvm.loop !21

middle.block404:                                  ; preds = %191
  %cmp.n412 = icmp eq i64 %n.vec409, %.pre235
  br i1 %cmp.n412, label %._crit_edge.us.us.2.1, label %scalar.ph405.preheader

scalar.ph405.preheader:                           ; preds = %._crit_edge.us.us.1.1, %middle.block404
  %indvars.iv212.2.1.ph = phi i64 [ 1, %._crit_edge.us.us.1.1 ], [ %ind.end410, %middle.block404 ]
  br label %scalar.ph405

scalar.ph405:                                     ; preds = %scalar.ph405.preheader, %198
  %indvars.iv212.2.1 = phi i64 [ %indvars.iv.next213.2.1, %198 ], [ %indvars.iv212.2.1.ph, %scalar.ph405.preheader ]
  %193 = add i64 %indvars.iv212.2.1, -1
  %194 = getelementptr i32, ptr %.unpack.pre, i64 %193
  %195 = load i32, ptr %194, align 4, !tbaa !7
  %196 = icmp eq i32 %170, %195
  br i1 %196, label %197, label %198

197:                                              ; preds = %scalar.ph405
  store i1 true, ptr @_QFEflag.7, align 1
  br label %198

198:                                              ; preds = %197, %scalar.ph405
  %indvars.iv.next213.2.1 = add nuw nsw i64 %indvars.iv212.2.1, 1
  %exitcond215.2.1.not = icmp eq i64 %indvars.iv212.2.1, %.pre235
  br i1 %exitcond215.2.1.not, label %._crit_edge.us.us.2.1, label %scalar.ph405, !llvm.loop !22

._crit_edge.us.us.2.1:                            ; preds = %198, %middle.block404
  %199 = load i32, ptr getelementptr inbounds ([3 x [3 x i32]], ptr @_QFEa, i64 0, i64 0, i64 2), align 8, !tbaa !7
  %min.iters.check441 = icmp ult i32 %.pre, 8
  br i1 %min.iters.check441, label %scalar.ph440.preheader, label %vector.ph442

vector.ph442:                                     ; preds = %._crit_edge.us.us.2.1
  %n.vec444 = and i64 %.pre235, -8
  %ind.end445 = or i64 %n.vec444, 1
  %broadcast.splatinsert453 = insertelement <4 x i32> poison, i32 %199, i64 0
  %broadcast.splat454 = shufflevector <4 x i32> %broadcast.splatinsert453, <4 x i32> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert455 = insertelement <4 x i32> poison, i32 %199, i64 0
  %broadcast.splat456 = shufflevector <4 x i32> %broadcast.splatinsert455, <4 x i32> poison, <4 x i32> zeroinitializer
  br label %vector.body448

vector.body448:                                   ; preds = %220, %vector.ph442
  %index449 = phi i64 [ 0, %vector.ph442 ], [ %index.next473, %220 ]
  %200 = getelementptr i32, ptr %.unpack.pre, i64 %index449
  %wide.load451 = load <4 x i32>, ptr %200, align 4, !tbaa !7
  %201 = getelementptr i32, ptr %200, i64 4
  %wide.load452 = load <4 x i32>, ptr %201, align 4, !tbaa !7
  %202 = icmp eq <4 x i32> %broadcast.splat454, %wide.load451
  %203 = icmp eq <4 x i32> %broadcast.splat456, %wide.load452
  %204 = extractelement <4 x i1> %202, i64 0
  %205 = extractelement <4 x i1> %202, i64 1
  %206 = or i1 %204, %205
  %207 = extractelement <4 x i1> %202, i64 2
  %208 = or i1 %206, %207
  %209 = extractelement <4 x i1> %202, i64 3
  %210 = or i1 %208, %209
  %211 = extractelement <4 x i1> %203, i64 0
  %212 = or i1 %210, %211
  %213 = extractelement <4 x i1> %203, i64 1
  %214 = or i1 %212, %213
  %215 = extractelement <4 x i1> %203, i64 2
  %216 = or i1 %214, %215
  %217 = extractelement <4 x i1> %203, i64 3
  %218 = or i1 %216, %217
  br i1 %218, label %219, label %220

219:                                              ; preds = %vector.body448
  store i1 true, ptr @_QFEflag.2, align 1
  br label %220

220:                                              ; preds = %vector.body448, %219
  %index.next473 = add nuw i64 %index449, 8
  %221 = icmp eq i64 %index.next473, %n.vec444
  br i1 %221, label %middle.block439, label %vector.body448, !llvm.loop !23

middle.block439:                                  ; preds = %220
  %cmp.n447 = icmp eq i64 %n.vec444, %.pre235
  br i1 %cmp.n447, label %._crit_edge.us.us.2231, label %scalar.ph440.preheader

scalar.ph440.preheader:                           ; preds = %._crit_edge.us.us.2.1, %middle.block439
  %indvars.iv212.2228.ph = phi i64 [ 1, %._crit_edge.us.us.2.1 ], [ %ind.end445, %middle.block439 ]
  br label %scalar.ph440

scalar.ph440:                                     ; preds = %scalar.ph440.preheader, %227
  %indvars.iv212.2228 = phi i64 [ %indvars.iv.next213.2229, %227 ], [ %indvars.iv212.2228.ph, %scalar.ph440.preheader ]
  %222 = add i64 %indvars.iv212.2228, -1
  %223 = getelementptr i32, ptr %.unpack.pre, i64 %222
  %224 = load i32, ptr %223, align 4, !tbaa !7
  %225 = icmp eq i32 %199, %224
  br i1 %225, label %226, label %227

226:                                              ; preds = %scalar.ph440
  store i1 true, ptr @_QFEflag.2, align 1
  br label %227

227:                                              ; preds = %226, %scalar.ph440
  %indvars.iv.next213.2229 = add nuw nsw i64 %indvars.iv212.2228, 1
  %exitcond215.2230.not = icmp eq i64 %indvars.iv212.2228, %.pre235
  br i1 %exitcond215.2230.not, label %._crit_edge.us.us.2231, label %scalar.ph440, !llvm.loop !24

._crit_edge.us.us.2231:                           ; preds = %227, %middle.block439
  %228 = load i32, ptr getelementptr inbounds ([3 x [3 x i32]], ptr @_QFEa, i64 0, i64 1, i64 2), align 4, !tbaa !7
  %min.iters.check476 = icmp ult i32 %.pre, 8
  br i1 %min.iters.check476, label %scalar.ph475.preheader, label %vector.ph477

vector.ph477:                                     ; preds = %._crit_edge.us.us.2231
  %n.vec479 = and i64 %.pre235, -8
  %ind.end480 = or i64 %n.vec479, 1
  %broadcast.splatinsert488 = insertelement <4 x i32> poison, i32 %228, i64 0
  %broadcast.splat489 = shufflevector <4 x i32> %broadcast.splatinsert488, <4 x i32> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert490 = insertelement <4 x i32> poison, i32 %228, i64 0
  %broadcast.splat491 = shufflevector <4 x i32> %broadcast.splatinsert490, <4 x i32> poison, <4 x i32> zeroinitializer
  br label %vector.body483

vector.body483:                                   ; preds = %249, %vector.ph477
  %index484 = phi i64 [ 0, %vector.ph477 ], [ %index.next508, %249 ]
  %229 = getelementptr i32, ptr %.unpack.pre, i64 %index484
  %wide.load486 = load <4 x i32>, ptr %229, align 4, !tbaa !7
  %230 = getelementptr i32, ptr %229, i64 4
  %wide.load487 = load <4 x i32>, ptr %230, align 4, !tbaa !7
  %231 = icmp eq <4 x i32> %broadcast.splat489, %wide.load486
  %232 = icmp eq <4 x i32> %broadcast.splat491, %wide.load487
  %233 = extractelement <4 x i1> %231, i64 0
  %234 = extractelement <4 x i1> %231, i64 1
  %235 = or i1 %233, %234
  %236 = extractelement <4 x i1> %231, i64 2
  %237 = or i1 %235, %236
  %238 = extractelement <4 x i1> %231, i64 3
  %239 = or i1 %237, %238
  %240 = extractelement <4 x i1> %232, i64 0
  %241 = or i1 %239, %240
  %242 = extractelement <4 x i1> %232, i64 1
  %243 = or i1 %241, %242
  %244 = extractelement <4 x i1> %232, i64 2
  %245 = or i1 %243, %244
  %246 = extractelement <4 x i1> %232, i64 3
  %247 = or i1 %245, %246
  br i1 %247, label %248, label %249

248:                                              ; preds = %vector.body483
  store i1 true, ptr @_QFEflag.5, align 1
  br label %249

249:                                              ; preds = %vector.body483, %248
  %index.next508 = add nuw i64 %index484, 8
  %250 = icmp eq i64 %index.next508, %n.vec479
  br i1 %250, label %middle.block474, label %vector.body483, !llvm.loop !25

middle.block474:                                  ; preds = %249
  %cmp.n482 = icmp eq i64 %n.vec479, %.pre235
  br i1 %cmp.n482, label %._crit_edge.us.us.1.2, label %scalar.ph475.preheader

scalar.ph475.preheader:                           ; preds = %._crit_edge.us.us.2231, %middle.block474
  %indvars.iv212.1.2.ph = phi i64 [ 1, %._crit_edge.us.us.2231 ], [ %ind.end480, %middle.block474 ]
  br label %scalar.ph475

scalar.ph475:                                     ; preds = %scalar.ph475.preheader, %256
  %indvars.iv212.1.2 = phi i64 [ %indvars.iv.next213.1.2, %256 ], [ %indvars.iv212.1.2.ph, %scalar.ph475.preheader ]
  %251 = add i64 %indvars.iv212.1.2, -1
  %252 = getelementptr i32, ptr %.unpack.pre, i64 %251
  %253 = load i32, ptr %252, align 4, !tbaa !7
  %254 = icmp eq i32 %228, %253
  br i1 %254, label %255, label %256

255:                                              ; preds = %scalar.ph475
  store i1 true, ptr @_QFEflag.5, align 1
  br label %256

256:                                              ; preds = %255, %scalar.ph475
  %indvars.iv.next213.1.2 = add nuw nsw i64 %indvars.iv212.1.2, 1
  %exitcond215.1.2.not = icmp eq i64 %indvars.iv212.1.2, %.pre235
  br i1 %exitcond215.1.2.not, label %._crit_edge.us.us.1.2, label %scalar.ph475, !llvm.loop !26

._crit_edge.us.us.1.2:                            ; preds = %256, %middle.block474
  %257 = load i32, ptr getelementptr inbounds ([3 x [3 x i32]], ptr @_QFEa, i64 0, i64 2, i64 2), align 16, !tbaa !7
  %min.iters.check511 = icmp ult i32 %.pre, 8
  br i1 %min.iters.check511, label %scalar.ph510.preheader, label %vector.ph512

vector.ph512:                                     ; preds = %._crit_edge.us.us.1.2
  %n.vec514 = and i64 %.pre235, -8
  %ind.end515 = or i64 %n.vec514, 1
  %broadcast.splatinsert523 = insertelement <4 x i32> poison, i32 %257, i64 0
  %broadcast.splat524 = shufflevector <4 x i32> %broadcast.splatinsert523, <4 x i32> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert525 = insertelement <4 x i32> poison, i32 %257, i64 0
  %broadcast.splat526 = shufflevector <4 x i32> %broadcast.splatinsert525, <4 x i32> poison, <4 x i32> zeroinitializer
  br label %vector.body518

vector.body518:                                   ; preds = %278, %vector.ph512
  %index519 = phi i64 [ 0, %vector.ph512 ], [ %index.next543, %278 ]
  %258 = getelementptr i32, ptr %.unpack.pre, i64 %index519
  %wide.load521 = load <4 x i32>, ptr %258, align 4, !tbaa !7
  %259 = getelementptr i32, ptr %258, i64 4
  %wide.load522 = load <4 x i32>, ptr %259, align 4, !tbaa !7
  %260 = icmp eq <4 x i32> %broadcast.splat524, %wide.load521
  %261 = icmp eq <4 x i32> %broadcast.splat526, %wide.load522
  %262 = extractelement <4 x i1> %260, i64 0
  %263 = extractelement <4 x i1> %260, i64 1
  %264 = or i1 %262, %263
  %265 = extractelement <4 x i1> %260, i64 2
  %266 = or i1 %264, %265
  %267 = extractelement <4 x i1> %260, i64 3
  %268 = or i1 %266, %267
  %269 = extractelement <4 x i1> %261, i64 0
  %270 = or i1 %268, %269
  %271 = extractelement <4 x i1> %261, i64 1
  %272 = or i1 %270, %271
  %273 = extractelement <4 x i1> %261, i64 2
  %274 = or i1 %272, %273
  %275 = extractelement <4 x i1> %261, i64 3
  %276 = or i1 %274, %275
  br i1 %276, label %277, label %278

277:                                              ; preds = %vector.body518
  store i1 true, ptr @_QFEflag.8, align 1
  br label %278

278:                                              ; preds = %vector.body518, %277
  %index.next543 = add nuw i64 %index519, 8
  %279 = icmp eq i64 %index.next543, %n.vec514
  br i1 %279, label %middle.block509, label %vector.body518, !llvm.loop !27

middle.block509:                                  ; preds = %278
  %cmp.n517 = icmp eq i64 %n.vec514, %.pre235
  br i1 %cmp.n517, label %.preheader, label %scalar.ph510.preheader

scalar.ph510.preheader:                           ; preds = %._crit_edge.us.us.1.2, %middle.block509
  %indvars.iv212.2.2.ph = phi i64 [ 1, %._crit_edge.us.us.1.2 ], [ %ind.end515, %middle.block509 ]
  br label %scalar.ph510

scalar.ph510:                                     ; preds = %scalar.ph510.preheader, %285
  %indvars.iv212.2.2 = phi i64 [ %indvars.iv.next213.2.2, %285 ], [ %indvars.iv212.2.2.ph, %scalar.ph510.preheader ]
  %280 = add i64 %indvars.iv212.2.2, -1
  %281 = getelementptr i32, ptr %.unpack.pre, i64 %280
  %282 = load i32, ptr %281, align 4, !tbaa !7
  %283 = icmp eq i32 %257, %282
  br i1 %283, label %284, label %285

284:                                              ; preds = %scalar.ph510
  store i1 true, ptr @_QFEflag.8, align 1
  br label %285

285:                                              ; preds = %284, %scalar.ph510
  %indvars.iv.next213.2.2 = add nuw nsw i64 %indvars.iv212.2.2, 1
  %exitcond215.2.2.not = icmp eq i64 %indvars.iv212.2.2, %.pre235
  br i1 %exitcond215.2.2.not, label %.preheader, label %scalar.ph510, !llvm.loop !28

.lr.ph:                                           ; preds = %0, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 1, %0 ]
  %286 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.596bd56d7bc0a3733e1f070e50ffc9bc, i32 17)
  %.unpack177 = load ptr, ptr @_QFEb.0, align 8, !tbaa !3
  %287 = add nsw i64 %indvars.iv, -1
  %288 = getelementptr i32, ptr %.unpack177, i64 %287
  %289 = call i1 @_FortranAioInputInteger(ptr %286, ptr %288, i32 4)
  %290 = call i32 @_FortranAioEndIoStatement(ptr %286)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv, %22
  br i1 %exitcond.not, label %.preheader204, label %.lr.ph

.preheader:                                       ; preds = %285, %middle.block509, %0, %.preheader204
  %.b = load i1, ptr @_QFEflag.0, align 1
  %291 = zext i1 %.b to i32
  %.b241 = load i1, ptr @_QFEflag.3, align 1
  %292 = zext i1 %.b241 to i32
  %293 = add nuw nsw i32 %292, %291
  %.b244 = load i1, ptr @_QFEflag.6, align 1
  %294 = zext i1 %.b244 to i32
  %295 = add nuw nsw i32 %293, %294
  %296 = icmp eq i32 %295, 3
  br i1 %296, label %297, label %.lr.ph.i189

297:                                              ; preds = %.lr.ph.i.2, %.lr.ph.i.1, %.preheader
  %298 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.596bd56d7bc0a3733e1f070e50ffc9bc, i32 34)
  %299 = call i1 @_FortranAioOutputAscii(ptr %298, ptr nonnull @_QQcl.596573, i64 3)
  %300 = call i32 @_FortranAioEndIoStatement(ptr %298)
  %301 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

.lr.ph.i189:                                      ; preds = %.preheader
  %.b239 = load i1, ptr @_QFEflag.1, align 1
  %302 = zext i1 %.b239 to i32
  %303 = add nuw nsw i32 %302, %291
  %.b240 = load i1, ptr @_QFEflag.2, align 1
  %304 = zext i1 %.b240 to i32
  %305 = add nuw nsw i32 %303, %304
  %306 = icmp eq i32 %305, 3
  br i1 %306, label %307, label %.lr.ph.i.1

307:                                              ; preds = %.lr.ph.i189.2, %.lr.ph.i189.1, %.lr.ph.i189
  %308 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.596bd56d7bc0a3733e1f070e50ffc9bc, i32 38)
  %309 = call i1 @_FortranAioOutputAscii(ptr %308, ptr nonnull @_QQcl.596573, i64 3)
  %310 = call i32 @_FortranAioEndIoStatement(ptr %308)
  %311 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

.lr.ph.i.1:                                       ; preds = %.lr.ph.i189
  %.b242 = load i1, ptr @_QFEflag.4, align 1
  %312 = zext i1 %.b242 to i32
  %313 = add nuw nsw i32 %312, %302
  %.b245 = load i1, ptr @_QFEflag.7, align 1
  %314 = zext i1 %.b245 to i32
  %315 = add nuw nsw i32 %313, %314
  %316 = icmp eq i32 %315, 3
  br i1 %316, label %297, label %.lr.ph.i189.1

.lr.ph.i189.1:                                    ; preds = %.lr.ph.i.1
  %317 = add nuw nsw i32 %312, %292
  %.b243 = load i1, ptr @_QFEflag.5, align 1
  %318 = zext i1 %.b243 to i32
  %319 = add nuw nsw i32 %317, %318
  %320 = icmp eq i32 %319, 3
  br i1 %320, label %307, label %.lr.ph.i.2

.lr.ph.i.2:                                       ; preds = %.lr.ph.i189.1
  %321 = add nuw nsw i32 %318, %304
  %.b246 = load i1, ptr @_QFEflag.8, align 1
  %322 = zext i1 %.b246 to i32
  %323 = add nuw nsw i32 %321, %322
  %324 = icmp eq i32 %323, 3
  br i1 %324, label %297, label %.lr.ph.i189.2

.lr.ph.i189.2:                                    ; preds = %.lr.ph.i.2
  %325 = add nuw nsw i32 %314, %294
  %326 = add nuw nsw i32 %325, %322
  %327 = icmp eq i32 %326, 3
  br i1 %327, label %307, label %328

328:                                              ; preds = %.lr.ph.i189.2
  %329 = add nuw nsw i32 %312, %291
  %330 = add nuw nsw i32 %329, %322
  %331 = icmp eq i32 %330, 3
  br i1 %331, label %332, label %337

332:                                              ; preds = %328
  %333 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.596bd56d7bc0a3733e1f070e50ffc9bc, i32 43)
  %334 = call i1 @_FortranAioOutputAscii(ptr %333, ptr nonnull @_QQcl.596573, i64 3)
  %335 = call i32 @_FortranAioEndIoStatement(ptr %333)
  %336 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

337:                                              ; preds = %328
  %338 = add nuw nsw i32 %304, %312
  %339 = add nuw nsw i32 %338, %294
  %340 = icmp eq i32 %339, 3
  br i1 %340, label %341, label %346

341:                                              ; preds = %337
  %342 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.596bd56d7bc0a3733e1f070e50ffc9bc, i32 46)
  %343 = call i1 @_FortranAioOutputAscii(ptr %342, ptr nonnull @_QQcl.596573, i64 3)
  %344 = call i32 @_FortranAioEndIoStatement(ptr %342)
  %345 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

346:                                              ; preds = %337
  %347 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.596bd56d7bc0a3733e1f070e50ffc9bc, i32 49)
  %348 = call i1 @_FortranAioOutputAscii(ptr %347, ptr nonnull @_QQcl.4E6F, i64 2)
  %349 = call i32 @_FortranAioEndIoStatement(ptr %347)
  ret void
}

declare ptr @_FortranAioBeginExternalListInput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioInputDescriptor(ptr, ptr) local_unnamed_addr

declare i32 @_FortranAioEndIoStatement(ptr) local_unnamed_addr

declare i1 @_FortranAioInputInteger(ptr, ptr, i32) local_unnamed_addr

declare ptr @_FortranAioBeginExternalListOutput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioOutputAscii(ptr, ptr, i64) local_unnamed_addr

declare {} @_FortranAStopStatement(i32, i1, i1) local_unnamed_addr

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #1

attributes #0 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }

!llvm.module.flags = !{!0, !1, !2}

!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{!4, !4, i64 0}
!4 = !{!"descriptor member", !5, i64 0}
!5 = !{!"any access", !6, i64 0}
!6 = !{!"Flang Type TBAA Root"}
!7 = !{!8, !8, i64 0}
!8 = !{!"any data access", !5, i64 0}
!9 = distinct !{!9, !10, !11}
!10 = !{!"llvm.loop.isvectorized", i32 1}
!11 = !{!"llvm.loop.unroll.runtime.disable"}
!12 = distinct !{!12, !11, !10}
!13 = distinct !{!13, !10, !11}
!14 = distinct !{!14, !11, !10}
!15 = distinct !{!15, !10, !11}
!16 = distinct !{!16, !11, !10}
!17 = distinct !{!17, !10, !11}
!18 = distinct !{!18, !11, !10}
!19 = distinct !{!19, !10, !11}
!20 = distinct !{!20, !11, !10}
!21 = distinct !{!21, !10, !11}
!22 = distinct !{!22, !11, !10}
!23 = distinct !{!23, !10, !11}
!24 = distinct !{!24, !11, !10}
!25 = distinct !{!25, !10, !11}
!26 = distinct !{!26, !11, !10}
!27 = distinct !{!27, !10, !11}
!28 = distinct !{!28, !11, !10}
