program main
  implicit none

  integer :: x, p, b, ans, i, j

  read(*,*) x


  if(x <= 3) then
     ans = 1
     write(*,*) ans
     stop
  end if
  
  ans = 0
  do i = 2, x
     do j = 2, 10
        b = i
        p = j
        if(x >= b**p) then
           ans = max(ans, b**p)
        end if
     end do
  end do

  write(*,*) ans

end program main

     
  

; 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"

@_QQcl.dc22c6f1b786d2cbd93c41715c043012 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_5983/source.f\00"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

define void @_QQmain() local_unnamed_addr {
  %1 = alloca i32, align 4
  %2 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.dc22c6f1b786d2cbd93c41715c043012, i32 6)
  %3 = call i1 @_FortranAioInputInteger(ptr %2, ptr nonnull %1, i32 4)
  %4 = call i32 @_FortranAioEndIoStatement(ptr %2)
  %5 = load i32, ptr %1, align 4, !tbaa !3
  %6 = icmp slt i32 %5, 4
  br i1 %6, label %7, label %.preheader.lr.ph

7:                                                ; preds = %0
  %8 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.dc22c6f1b786d2cbd93c41715c043012, i32 11)
  %9 = call i1 @_FortranAioOutputInteger32(ptr %8, i32 1)
  %10 = call i32 @_FortranAioEndIoStatement(ptr %8)
  %11 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

.preheader.lr.ph:                                 ; preds = %0
  %12 = zext i32 %5 to i64
  br label %.preheader

.preheader:                                       ; preds = %.preheader.lr.ph, %134
  %.in = phi i64 [ %12, %.preheader.lr.ph ], [ %14, %134 ]
  %13 = phi i32 [ 2, %.preheader.lr.ph ], [ %135, %134 ]
  %.027 = phi i32 [ 0, %.preheader.lr.ph ], [ %.2.8, %134 ]
  %14 = add nsw i64 %.in, -1
  %15 = lshr i32 2, 1
  %16 = mul i32 %13, %13
  %.not.i.inv = icmp ugt i32 2, 1
  %17 = select i1 %.not.i.inv, i32 %16, i32 1
  %spec.select.i = mul i32 %17, 1
  %.not = icmp slt i32 %5, %spec.select.i
  br i1 %.not, label %.lr.ph.i.1, label %.lr.ph.i22

.lr.ph.i22:                                       ; preds = %.preheader
  %18 = lshr i32 2, 1
  %19 = mul i32 %13, %13
  %.not.i20.inv = icmp ugt i32 2, 1
  %20 = select i1 %.not.i20.inv, i32 %19, i32 1
  %spec.select.i21 = mul i32 %20, 1
  %21 = call i32 @llvm.smax.i32(i32 %.027, i32 %spec.select.i21)
  br label %.lr.ph.i.1

.lr.ph.i.1:                                       ; preds = %.preheader, %.lr.ph.i22
  %.2 = phi i32 [ %21, %.lr.ph.i22 ], [ %.027, %.preheader ]
  %22 = lshr i32 3, 1
  %23 = mul i32 %13, %13
  %.not.i.1.inv = icmp ugt i32 3, 1
  %24 = select i1 %.not.i.1.inv, i32 %23, i32 1
  %spec.select.i.1 = mul i32 %24, %13
  %.not.1 = icmp slt i32 %5, %spec.select.i.1
  br i1 %.not.1, label %.lr.ph.i.preheader.2, label %.lr.ph.i22.1

.lr.ph.i22.1:                                     ; preds = %.lr.ph.i.1
  %25 = lshr i32 3, 1
  %26 = mul i32 %13, %13
  %.not.i20.1.inv = icmp ugt i32 3, 1
  %27 = select i1 %.not.i20.1.inv, i32 %26, i32 1
  %spec.select.i21.1 = mul i32 %27, %13
  %28 = call i32 @llvm.smax.i32(i32 %.2, i32 %spec.select.i21.1)
  br label %.lr.ph.i.preheader.2

.lr.ph.i.preheader.2:                             ; preds = %.lr.ph.i22.1, %.lr.ph.i.1
  %.2.1 = phi i32 [ %28, %.lr.ph.i22.1 ], [ %.2, %.lr.ph.i.1 ]
  br label %.lr.ph.i.2

.lr.ph.i.2:                                       ; preds = %.lr.ph.i.2, %.lr.ph.i.preheader.2
  %spec.select4.i.2 = phi i32 [ %spec.select.i.2, %.lr.ph.i.2 ], [ 1, %.lr.ph.i.preheader.2 ]
  %29 = phi i32 [ %31, %.lr.ph.i.2 ], [ 4, %.lr.ph.i.preheader.2 ]
  %30 = phi i32 [ %32, %.lr.ph.i.2 ], [ %13, %.lr.ph.i.preheader.2 ]
  %31 = lshr i32 %29, 1
  %32 = mul i32 %30, %30
  %33 = and i32 %29, 2
  %.not.i.2 = icmp eq i32 %33, 0
  %34 = select i1 %.not.i.2, i32 1, i32 %32
  %spec.select.i.2 = mul i32 %34, %spec.select4.i.2
  %35 = icmp ult i32 %29, 4
  br i1 %35, label %__mlir_math_ipowi_i32.exit.2, label %.lr.ph.i.2

__mlir_math_ipowi_i32.exit.2:                     ; preds = %.lr.ph.i.2
  %.not.2 = icmp slt i32 %5, %spec.select.i.2
  br i1 %.not.2, label %.lr.ph.i.preheader.3, label %.lr.ph.i22.2

.lr.ph.i22.2:                                     ; preds = %__mlir_math_ipowi_i32.exit.2, %.lr.ph.i22.2
  %spec.select4.i19.2 = phi i32 [ %spec.select.i21.2, %.lr.ph.i22.2 ], [ 1, %__mlir_math_ipowi_i32.exit.2 ]
  %36 = phi i32 [ %38, %.lr.ph.i22.2 ], [ 4, %__mlir_math_ipowi_i32.exit.2 ]
  %37 = phi i32 [ %39, %.lr.ph.i22.2 ], [ %13, %__mlir_math_ipowi_i32.exit.2 ]
  %38 = lshr i32 %36, 1
  %39 = mul i32 %37, %37
  %40 = and i32 %36, 2
  %.not.i20.2 = icmp eq i32 %40, 0
  %41 = select i1 %.not.i20.2, i32 1, i32 %39
  %spec.select.i21.2 = mul i32 %41, %spec.select4.i19.2
  %42 = icmp ult i32 %36, 4
  br i1 %42, label %__mlir_math_ipowi_i32.exit23.2, label %.lr.ph.i22.2

__mlir_math_ipowi_i32.exit23.2:                   ; preds = %.lr.ph.i22.2
  %43 = call i32 @llvm.smax.i32(i32 %.2.1, i32 %spec.select.i21.2)
  br label %.lr.ph.i.preheader.3

.lr.ph.i.preheader.3:                             ; preds = %__mlir_math_ipowi_i32.exit23.2, %__mlir_math_ipowi_i32.exit.2
  %.2.2 = phi i32 [ %43, %__mlir_math_ipowi_i32.exit23.2 ], [ %.2.1, %__mlir_math_ipowi_i32.exit.2 ]
  br label %.lr.ph.i.3

.lr.ph.i.3:                                       ; preds = %.lr.ph.i.3, %.lr.ph.i.preheader.3
  %spec.select4.i.3 = phi i32 [ %spec.select.i.3, %.lr.ph.i.3 ], [ %13, %.lr.ph.i.preheader.3 ]
  %44 = phi i32 [ %46, %.lr.ph.i.3 ], [ 5, %.lr.ph.i.preheader.3 ]
  %45 = phi i32 [ %47, %.lr.ph.i.3 ], [ %13, %.lr.ph.i.preheader.3 ]
  %46 = lshr i32 %44, 1
  %47 = mul i32 %45, %45
  %48 = and i32 %44, 2
  %.not.i.3 = icmp eq i32 %48, 0
  %49 = select i1 %.not.i.3, i32 1, i32 %47
  %spec.select.i.3 = mul i32 %49, %spec.select4.i.3
  %50 = icmp ult i32 %44, 4
  br i1 %50, label %__mlir_math_ipowi_i32.exit.3, label %.lr.ph.i.3

__mlir_math_ipowi_i32.exit.3:                     ; preds = %.lr.ph.i.3
  %.not.3 = icmp slt i32 %5, %spec.select.i.3
  br i1 %.not.3, label %.lr.ph.i.preheader.4, label %.lr.ph.i22.3

.lr.ph.i22.3:                                     ; preds = %__mlir_math_ipowi_i32.exit.3, %.lr.ph.i22.3
  %spec.select4.i19.3 = phi i32 [ %spec.select.i21.3, %.lr.ph.i22.3 ], [ %13, %__mlir_math_ipowi_i32.exit.3 ]
  %51 = phi i32 [ %53, %.lr.ph.i22.3 ], [ 5, %__mlir_math_ipowi_i32.exit.3 ]
  %52 = phi i32 [ %54, %.lr.ph.i22.3 ], [ %13, %__mlir_math_ipowi_i32.exit.3 ]
  %53 = lshr i32 %51, 1
  %54 = mul i32 %52, %52
  %55 = and i32 %51, 2
  %.not.i20.3 = icmp eq i32 %55, 0
  %56 = select i1 %.not.i20.3, i32 1, i32 %54
  %spec.select.i21.3 = mul i32 %56, %spec.select4.i19.3
  %57 = icmp ult i32 %51, 4
  br i1 %57, label %__mlir_math_ipowi_i32.exit23.3, label %.lr.ph.i22.3

__mlir_math_ipowi_i32.exit23.3:                   ; preds = %.lr.ph.i22.3
  %58 = call i32 @llvm.smax.i32(i32 %.2.2, i32 %spec.select.i21.3)
  br label %.lr.ph.i.preheader.4

.lr.ph.i.preheader.4:                             ; preds = %__mlir_math_ipowi_i32.exit23.3, %__mlir_math_ipowi_i32.exit.3
  %.2.3 = phi i32 [ %58, %__mlir_math_ipowi_i32.exit23.3 ], [ %.2.2, %__mlir_math_ipowi_i32.exit.3 ]
  br label %.lr.ph.i.4

.lr.ph.i.4:                                       ; preds = %.lr.ph.i.4, %.lr.ph.i.preheader.4
  %spec.select4.i.4 = phi i32 [ %spec.select.i.4, %.lr.ph.i.4 ], [ 1, %.lr.ph.i.preheader.4 ]
  %59 = phi i32 [ %61, %.lr.ph.i.4 ], [ 6, %.lr.ph.i.preheader.4 ]
  %60 = phi i32 [ %62, %.lr.ph.i.4 ], [ %13, %.lr.ph.i.preheader.4 ]
  %61 = lshr i32 %59, 1
  %62 = mul i32 %60, %60
  %63 = and i32 %59, 2
  %.not.i.4 = icmp eq i32 %63, 0
  %64 = select i1 %.not.i.4, i32 1, i32 %62
  %spec.select.i.4 = mul i32 %64, %spec.select4.i.4
  %65 = icmp ult i32 %59, 4
  br i1 %65, label %__mlir_math_ipowi_i32.exit.4, label %.lr.ph.i.4

__mlir_math_ipowi_i32.exit.4:                     ; preds = %.lr.ph.i.4
  %.not.4 = icmp slt i32 %5, %spec.select.i.4
  br i1 %.not.4, label %.lr.ph.i.preheader.5, label %.lr.ph.i22.4

.lr.ph.i22.4:                                     ; preds = %__mlir_math_ipowi_i32.exit.4, %.lr.ph.i22.4
  %spec.select4.i19.4 = phi i32 [ %spec.select.i21.4, %.lr.ph.i22.4 ], [ 1, %__mlir_math_ipowi_i32.exit.4 ]
  %66 = phi i32 [ %68, %.lr.ph.i22.4 ], [ 6, %__mlir_math_ipowi_i32.exit.4 ]
  %67 = phi i32 [ %69, %.lr.ph.i22.4 ], [ %13, %__mlir_math_ipowi_i32.exit.4 ]
  %68 = lshr i32 %66, 1
  %69 = mul i32 %67, %67
  %70 = and i32 %66, 2
  %.not.i20.4 = icmp eq i32 %70, 0
  %71 = select i1 %.not.i20.4, i32 1, i32 %69
  %spec.select.i21.4 = mul i32 %71, %spec.select4.i19.4
  %72 = icmp ult i32 %66, 4
  br i1 %72, label %__mlir_math_ipowi_i32.exit23.4, label %.lr.ph.i22.4

__mlir_math_ipowi_i32.exit23.4:                   ; preds = %.lr.ph.i22.4
  %73 = call i32 @llvm.smax.i32(i32 %.2.3, i32 %spec.select.i21.4)
  br label %.lr.ph.i.preheader.5

.lr.ph.i.preheader.5:                             ; preds = %__mlir_math_ipowi_i32.exit23.4, %__mlir_math_ipowi_i32.exit.4
  %.2.4 = phi i32 [ %73, %__mlir_math_ipowi_i32.exit23.4 ], [ %.2.3, %__mlir_math_ipowi_i32.exit.4 ]
  br label %.lr.ph.i.5

.lr.ph.i.5:                                       ; preds = %.lr.ph.i.5, %.lr.ph.i.preheader.5
  %spec.select4.i.5 = phi i32 [ %spec.select.i.5, %.lr.ph.i.5 ], [ %13, %.lr.ph.i.preheader.5 ]
  %74 = phi i32 [ %76, %.lr.ph.i.5 ], [ 7, %.lr.ph.i.preheader.5 ]
  %75 = phi i32 [ %77, %.lr.ph.i.5 ], [ %13, %.lr.ph.i.preheader.5 ]
  %76 = lshr i32 %74, 1
  %77 = mul i32 %75, %75
  %78 = and i32 %74, 2
  %.not.i.5 = icmp eq i32 %78, 0
  %79 = select i1 %.not.i.5, i32 1, i32 %77
  %spec.select.i.5 = mul i32 %79, %spec.select4.i.5
  %80 = icmp ult i32 %74, 4
  br i1 %80, label %__mlir_math_ipowi_i32.exit.5, label %.lr.ph.i.5

__mlir_math_ipowi_i32.exit.5:                     ; preds = %.lr.ph.i.5
  %.not.5 = icmp slt i32 %5, %spec.select.i.5
  br i1 %.not.5, label %.lr.ph.i.preheader.6, label %.lr.ph.i22.5

.lr.ph.i22.5:                                     ; preds = %__mlir_math_ipowi_i32.exit.5, %.lr.ph.i22.5
  %spec.select4.i19.5 = phi i32 [ %spec.select.i21.5, %.lr.ph.i22.5 ], [ %13, %__mlir_math_ipowi_i32.exit.5 ]
  %81 = phi i32 [ %83, %.lr.ph.i22.5 ], [ 7, %__mlir_math_ipowi_i32.exit.5 ]
  %82 = phi i32 [ %84, %.lr.ph.i22.5 ], [ %13, %__mlir_math_ipowi_i32.exit.5 ]
  %83 = lshr i32 %81, 1
  %84 = mul i32 %82, %82
  %85 = and i32 %81, 2
  %.not.i20.5 = icmp eq i32 %85, 0
  %86 = select i1 %.not.i20.5, i32 1, i32 %84
  %spec.select.i21.5 = mul i32 %86, %spec.select4.i19.5
  %87 = icmp ult i32 %81, 4
  br i1 %87, label %__mlir_math_ipowi_i32.exit23.5, label %.lr.ph.i22.5

__mlir_math_ipowi_i32.exit23.5:                   ; preds = %.lr.ph.i22.5
  %88 = call i32 @llvm.smax.i32(i32 %.2.4, i32 %spec.select.i21.5)
  br label %.lr.ph.i.preheader.6

.lr.ph.i.preheader.6:                             ; preds = %__mlir_math_ipowi_i32.exit23.5, %__mlir_math_ipowi_i32.exit.5
  %.2.5 = phi i32 [ %88, %__mlir_math_ipowi_i32.exit23.5 ], [ %.2.4, %__mlir_math_ipowi_i32.exit.5 ]
  br label %.lr.ph.i.6

.lr.ph.i.6:                                       ; preds = %.lr.ph.i.6, %.lr.ph.i.preheader.6
  %spec.select4.i.6 = phi i32 [ %spec.select.i.6, %.lr.ph.i.6 ], [ 1, %.lr.ph.i.preheader.6 ]
  %89 = phi i32 [ %91, %.lr.ph.i.6 ], [ 8, %.lr.ph.i.preheader.6 ]
  %90 = phi i32 [ %92, %.lr.ph.i.6 ], [ %13, %.lr.ph.i.preheader.6 ]
  %91 = lshr i32 %89, 1
  %92 = mul i32 %90, %90
  %93 = and i32 %89, 2
  %.not.i.6 = icmp eq i32 %93, 0
  %94 = select i1 %.not.i.6, i32 1, i32 %92
  %spec.select.i.6 = mul i32 %94, %spec.select4.i.6
  %95 = icmp ult i32 %89, 4
  br i1 %95, label %__mlir_math_ipowi_i32.exit.6, label %.lr.ph.i.6

__mlir_math_ipowi_i32.exit.6:                     ; preds = %.lr.ph.i.6
  %.not.6 = icmp slt i32 %5, %spec.select.i.6
  br i1 %.not.6, label %.lr.ph.i.preheader.7, label %.lr.ph.i22.6

.lr.ph.i22.6:                                     ; preds = %__mlir_math_ipowi_i32.exit.6, %.lr.ph.i22.6
  %spec.select4.i19.6 = phi i32 [ %spec.select.i21.6, %.lr.ph.i22.6 ], [ 1, %__mlir_math_ipowi_i32.exit.6 ]
  %96 = phi i32 [ %98, %.lr.ph.i22.6 ], [ 8, %__mlir_math_ipowi_i32.exit.6 ]
  %97 = phi i32 [ %99, %.lr.ph.i22.6 ], [ %13, %__mlir_math_ipowi_i32.exit.6 ]
  %98 = lshr i32 %96, 1
  %99 = mul i32 %97, %97
  %100 = and i32 %96, 2
  %.not.i20.6 = icmp eq i32 %100, 0
  %101 = select i1 %.not.i20.6, i32 1, i32 %99
  %spec.select.i21.6 = mul i32 %101, %spec.select4.i19.6
  %102 = icmp ult i32 %96, 4
  br i1 %102, label %__mlir_math_ipowi_i32.exit23.6, label %.lr.ph.i22.6

__mlir_math_ipowi_i32.exit23.6:                   ; preds = %.lr.ph.i22.6
  %103 = call i32 @llvm.smax.i32(i32 %.2.5, i32 %spec.select.i21.6)
  br label %.lr.ph.i.preheader.7

.lr.ph.i.preheader.7:                             ; preds = %__mlir_math_ipowi_i32.exit23.6, %__mlir_math_ipowi_i32.exit.6
  %.2.6 = phi i32 [ %103, %__mlir_math_ipowi_i32.exit23.6 ], [ %.2.5, %__mlir_math_ipowi_i32.exit.6 ]
  br label %.lr.ph.i.7

.lr.ph.i.7:                                       ; preds = %.lr.ph.i.7, %.lr.ph.i.preheader.7
  %spec.select4.i.7 = phi i32 [ %spec.select.i.7, %.lr.ph.i.7 ], [ %13, %.lr.ph.i.preheader.7 ]
  %104 = phi i32 [ %106, %.lr.ph.i.7 ], [ 9, %.lr.ph.i.preheader.7 ]
  %105 = phi i32 [ %107, %.lr.ph.i.7 ], [ %13, %.lr.ph.i.preheader.7 ]
  %106 = lshr i32 %104, 1
  %107 = mul i32 %105, %105
  %108 = and i32 %104, 2
  %.not.i.7 = icmp eq i32 %108, 0
  %109 = select i1 %.not.i.7, i32 1, i32 %107
  %spec.select.i.7 = mul i32 %109, %spec.select4.i.7
  %110 = icmp ult i32 %104, 4
  br i1 %110, label %__mlir_math_ipowi_i32.exit.7, label %.lr.ph.i.7

__mlir_math_ipowi_i32.exit.7:                     ; preds = %.lr.ph.i.7
  %.not.7 = icmp slt i32 %5, %spec.select.i.7
  br i1 %.not.7, label %.lr.ph.i.preheader.8, label %.lr.ph.i22.7

.lr.ph.i22.7:                                     ; preds = %__mlir_math_ipowi_i32.exit.7, %.lr.ph.i22.7
  %spec.select4.i19.7 = phi i32 [ %spec.select.i21.7, %.lr.ph.i22.7 ], [ %13, %__mlir_math_ipowi_i32.exit.7 ]
  %111 = phi i32 [ %113, %.lr.ph.i22.7 ], [ 9, %__mlir_math_ipowi_i32.exit.7 ]
  %112 = phi i32 [ %114, %.lr.ph.i22.7 ], [ %13, %__mlir_math_ipowi_i32.exit.7 ]
  %113 = lshr i32 %111, 1
  %114 = mul i32 %112, %112
  %115 = and i32 %111, 2
  %.not.i20.7 = icmp eq i32 %115, 0
  %116 = select i1 %.not.i20.7, i32 1, i32 %114
  %spec.select.i21.7 = mul i32 %116, %spec.select4.i19.7
  %117 = icmp ult i32 %111, 4
  br i1 %117, label %__mlir_math_ipowi_i32.exit23.7, label %.lr.ph.i22.7

__mlir_math_ipowi_i32.exit23.7:                   ; preds = %.lr.ph.i22.7
  %118 = call i32 @llvm.smax.i32(i32 %.2.6, i32 %spec.select.i21.7)
  br label %.lr.ph.i.preheader.8

.lr.ph.i.preheader.8:                             ; preds = %__mlir_math_ipowi_i32.exit23.7, %__mlir_math_ipowi_i32.exit.7
  %.2.7 = phi i32 [ %118, %__mlir_math_ipowi_i32.exit23.7 ], [ %.2.6, %__mlir_math_ipowi_i32.exit.7 ]
  br label %.lr.ph.i.8

.lr.ph.i.8:                                       ; preds = %.lr.ph.i.8, %.lr.ph.i.preheader.8
  %spec.select4.i.8 = phi i32 [ %spec.select.i.8, %.lr.ph.i.8 ], [ 1, %.lr.ph.i.preheader.8 ]
  %119 = phi i32 [ %121, %.lr.ph.i.8 ], [ 10, %.lr.ph.i.preheader.8 ]
  %120 = phi i32 [ %122, %.lr.ph.i.8 ], [ %13, %.lr.ph.i.preheader.8 ]
  %121 = lshr i32 %119, 1
  %122 = mul i32 %120, %120
  %123 = and i32 %119, 2
  %.not.i.8 = icmp eq i32 %123, 0
  %124 = select i1 %.not.i.8, i32 1, i32 %122
  %spec.select.i.8 = mul i32 %124, %spec.select4.i.8
  %125 = icmp ult i32 %119, 4
  br i1 %125, label %__mlir_math_ipowi_i32.exit.8, label %.lr.ph.i.8

__mlir_math_ipowi_i32.exit.8:                     ; preds = %.lr.ph.i.8
  %.not.8 = icmp slt i32 %5, %spec.select.i.8
  br i1 %.not.8, label %134, label %.lr.ph.i22.8

.lr.ph.i22.8:                                     ; preds = %__mlir_math_ipowi_i32.exit.8, %.lr.ph.i22.8
  %spec.select4.i19.8 = phi i32 [ %spec.select.i21.8, %.lr.ph.i22.8 ], [ 1, %__mlir_math_ipowi_i32.exit.8 ]
  %126 = phi i32 [ %128, %.lr.ph.i22.8 ], [ 10, %__mlir_math_ipowi_i32.exit.8 ]
  %127 = phi i32 [ %129, %.lr.ph.i22.8 ], [ %13, %__mlir_math_ipowi_i32.exit.8 ]
  %128 = lshr i32 %126, 1
  %129 = mul i32 %127, %127
  %130 = and i32 %126, 2
  %.not.i20.8 = icmp eq i32 %130, 0
  %131 = select i1 %.not.i20.8, i32 1, i32 %129
  %spec.select.i21.8 = mul i32 %131, %spec.select4.i19.8
  %132 = icmp ult i32 %126, 4
  br i1 %132, label %__mlir_math_ipowi_i32.exit23.8, label %.lr.ph.i22.8

__mlir_math_ipowi_i32.exit23.8:                   ; preds = %.lr.ph.i22.8
  %133 = call i32 @llvm.smax.i32(i32 %.2.7, i32 %spec.select.i21.8)
  br label %134

134:                                              ; preds = %__mlir_math_ipowi_i32.exit23.8, %__mlir_math_ipowi_i32.exit.8
  %.2.8 = phi i32 [ %133, %__mlir_math_ipowi_i32.exit23.8 ], [ %.2.7, %__mlir_math_ipowi_i32.exit.8 ]
  %135 = add i32 %13, 1
  %136 = icmp sgt i64 %.in, 2
  br i1 %136, label %.preheader, label %._crit_edge

._crit_edge:                                      ; preds = %134
  %137 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.dc22c6f1b786d2cbd93c41715c043012, i32 26)
  %138 = call i1 @_FortranAioOutputInteger32(ptr %137, i32 %.2.8)
  %139 = call i32 @_FortranAioEndIoStatement(ptr %137)
  ret void
}

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

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

declare i32 @_FortranAioEndIoStatement(ptr) local_unnamed_addr

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

declare i1 @_FortranAioOutputInteger32(ptr, i32) 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) #0

attributes #0 = { 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 = !{!"any data access", !5, i64 0}
!5 = !{!"any access", !6, i64 0}
!6 = !{!"Flang Type TBAA Root"}
