Files
ispc/examples/stencil/stencil_cu_nvptx64.ll
2013-11-08 14:17:26 +01:00

270 lines
17 KiB
LLVM

; ModuleID = 'stencil_cu_nvptx64.bc'
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v16:16:16-v32:32:32-v64:64:64-v128:128:128-n16:32:64"
target triple = "nvptx64"
; Function Attrs: nounwind readnone
declare i32 @llvm.nvvm.read.ptx.sreg.tid.x() #0
; Function Attrs: nounwind readnone
declare i32 @llvm.nvvm.read.ptx.sreg.ctaid.x() #0
; Function Attrs: nounwind readnone
declare i32 @llvm.nvvm.read.ptx.sreg.warpsize() #0
; Function Attrs: nounwind
define void @stencil_step_task(i32 %x0, i32 %x1, i32 %y0, i32 %y1, i32 %z0, i32 %Nx, i32 %Ny, i32 %Nz, double* nocapture %coef, double* %vsq, double* %Ain, double* %Aout) #1 {
allocas:
%bid.i.i = tail call i32 @llvm.nvvm.read.ptx.sreg.ctaid.x() #2
%add_z0_load_calltmp = add i32 %bid.i.i, %z0
%bid.i.i21 = tail call i32 @llvm.nvvm.read.ptx.sreg.ctaid.x() #2
%add_z0_load15_calltmp18 = add i32 %z0, 1
%add_add_z0_load15_calltmp18_ = add i32 %add_z0_load15_calltmp18, %bid.i.i21
%mul_Nx_load_Ny_load.i = mul i32 %Ny, %Nx
%coef_load_offset_load.i = load double* %coef, align 8
%coef_load16_offset.i = getelementptr double* %coef, i64 1
%coef_load16_offset_load.i = load double* %coef_load16_offset.i, align 8
%coef_load19_offset.i = getelementptr double* %coef, i64 2
%coef_load19_offset_load.i = load double* %coef_load19_offset.i, align 8
%coef_load22_offset.i = getelementptr double* %coef, i64 3
%coef_load22_offset_load.i = load double* %coef_load22_offset.i, align 8
%less_z_load_z1_load.i161 = icmp slt i32 %add_z0_load_calltmp, %add_add_z0_load15_calltmp18_
br i1 %less_z_load_z1_load.i161, label %for_test28.i.preheader.lr.ph, label %stencil_step___uniuniuniuniuniuniuniuniuniun_3C_Cund_3E_un_3C_Cund_3E_un_3C_Cund_3E_un_3C_und_3E_.exit
for_test28.i.preheader.lr.ph: ; preds = %allocas
%less_y_load_y1_load.i159 = icmp slt i32 %y0, %y1
%less_xb_load_x1_load.i157 = icmp slt i32 %x0, %x1
%x1_load199_broadcast_init.i = insertelement <1 x i32> undef, i32 %x1, i32 0
%mul__Nx_load119.i = shl i32 %Nx, 1
%mul__Nx_load167.i = mul i32 %Nx, 3
%mul__Nx_load127.i = mul i32 %Nx, -2
%Ain_load65_ptr2int.i = ptrtoint double* %Ain to i64
%mul__Nx_load175.i = mul i32 %Nx, -3
%mul__Nxy_load136.i = shl i32 %mul_Nx_load_Ny_load.i, 1
%mul__Nxy_load184.i = mul i32 %mul_Nx_load_Ny_load.i, 3
%mul__Nxy_load144.i = mul i32 %mul_Nx_load_Ny_load.i, -2
%mul__Nxy_load192.i = mul i32 %mul_Nx_load_Ny_load.i, -3
%Aout_load_ptr2int.i = ptrtoint double* %Aout to i64
%vsq_load_ptr2int.i = ptrtoint double* %vsq to i64
%0 = add i32 %bid.i.i21, %z0
br label %for_test28.i.preheader
for_test28.i.preheader: ; preds = %for_exit31.i, %for_test28.i.preheader.lr.ph
%z.0.i162 = phi i32 [ %add_z0_load_calltmp, %for_test28.i.preheader.lr.ph ], [ %z_load245_plus1.i, %for_exit31.i ]
br i1 %less_y_load_y1_load.i159, label %for_test35.i.preheader.lr.ph, label %for_exit31.i
for_test35.i.preheader.lr.ph: ; preds = %for_test28.i.preheader
%mul_z_load45_Nxy_load.i = mul i32 %z.0.i162, %mul_Nx_load_Ny_load.i
br i1 %less_xb_load_x1_load.i157, label %for_loop37.i.lr.ph.us, label %for_exit31.i
for_exit38.i.us: ; preds = %safe_if_after_true.i.us
%y_load244_plus1.i.us = add i32 %y.0.i160.us, 1
%exitcond = icmp eq i32 %y_load244_plus1.i.us, %y1
br i1 %exitcond, label %for_exit31.i, label %for_loop37.i.lr.ph.us
for_loop37.i.us: ; preds = %for_loop37.i.lr.ph.us, %safe_if_after_true.i.us
%xb.0.i158.us = phi i32 [ %x0, %for_loop37.i.lr.ph.us ], [ %add_xb_load243_calltmp241.i.us, %safe_if_after_true.i.us ]
%tid.i.i.i.us = tail call i32 @llvm.nvvm.read.ptx.sreg.tid.x() #2
%tid.i.i.i.i.us = tail call i32 @llvm.nvvm.read.ptx.sreg.warpsize() #2
%sub_calltmp3_.i.i.us = add i32 %tid.i.i.i.i.us, -1
%bitop.i.i.us = and i32 %sub_calltmp3_.i.i.us, %tid.i.i.i.us
%add_xb_load42_calltmp.i.us = add i32 %bitop.i.i.us, %xb.0.i158.us
%add_xb_load42_calltmp_broadcast_init.i.us = insertelement <1 x i32> undef, i32 %add_xb_load42_calltmp.i.us, i32 0
%less_x_load198_x1_load199_broadcast.i.us = icmp slt <1 x i32> %add_xb_load42_calltmp_broadcast_init.i.us, %x1_load199_broadcast_init.i
%v.i.i.us = extractelement <1 x i1> %less_x_load198_x1_load199_broadcast.i.us, i32 0
br i1 %v.i.i.us, label %pl_dolane.i.us, label %safe_if_after_true.i.us
pl_dolane.i.us: ; preds = %for_loop37.i.us
%.lhs.lhs.us = add i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %add_xb_load42_calltmp.i.us
%.lhs.us = shl i32 %.lhs.lhs.us, 3
%1 = add i32 %.lhs.us, -8
%iptr__id.i.rhs.us = sext i32 %1 to i64
%iptr__id.i.us = add i64 %iptr__id.i.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i.us = inttoptr i64 %iptr__id.i.us to double*
%val__id.i.us = load double* %ptr__id.i.us, align 8
%2 = add i32 %.lhs.us, 8
%iptr__id.i130.rhs.us = sext i32 %2 to i64
%iptr__id.i130.us = add i64 %iptr__id.i130.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i131.us = inttoptr i64 %iptr__id.i130.us to double*
%val__id.i132.us = load double* %ptr__id.i131.us, align 8
%3 = add i32 %.lhs.us, -16
%iptr__id.i125.rhs.us = sext i32 %3 to i64
%iptr__id.i125.us = add i64 %iptr__id.i125.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i126.us = inttoptr i64 %iptr__id.i125.us to double*
%val__id.i127.us = load double* %ptr__id.i126.us, align 8
%4 = add i32 %.lhs.us, 16
%iptr__id.i120.rhs.us = sext i32 %4 to i64
%iptr__id.i120.us = add i64 %iptr__id.i120.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i121.us = inttoptr i64 %iptr__id.i120.us to double*
%val__id.i122.us = load double* %ptr__id.i121.us, align 8
%.lhs138.us = add i32 %.lhs138.lhs.us, %add_xb_load42_calltmp.i.us
%5 = shl i32 %.lhs138.us, 3
%iptr__id.i115.rhs.us = sext i32 %5 to i64
%iptr__id.i115.us = add i64 %iptr__id.i115.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i116.us = inttoptr i64 %iptr__id.i115.us to double*
%val__id.i117.us = load double* %ptr__id.i116.us, align 8
%6 = add i32 %.lhs.us, -24
%iptr__id.i110.rhs.us = sext i32 %6 to i64
%iptr__id.i110.us = add i64 %iptr__id.i110.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i111.us = inttoptr i64 %iptr__id.i110.us to double*
%val__id.i112.us = load double* %ptr__id.i111.us, align 8
%7 = add i32 %.lhs.us, 24
%iptr__id.i105.rhs.us = sext i32 %7 to i64
%iptr__id.i105.us = add i64 %iptr__id.i105.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i106.us = inttoptr i64 %iptr__id.i105.us to double*
%val__id.i107.us = load double* %ptr__id.i106.us, align 8
%.lhs141.us = add i32 %.lhs141.lhs.us, %add_xb_load42_calltmp.i.us
%8 = shl i32 %.lhs141.us, 3
%iptr__id.i100.rhs.us = sext i32 %8 to i64
%iptr__id.i100.us = add i64 %iptr__id.i100.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i101.us = inttoptr i64 %iptr__id.i100.us to double*
%val__id.i102.us = load double* %ptr__id.i101.us, align 8
%.lhs142.us = add i32 %.lhs142.lhs.us, %add_xb_load42_calltmp.i.us
%9 = shl i32 %.lhs142.us, 3
%iptr__id.i95.rhs.us = sext i32 %9 to i64
%iptr__id.i95.us = add i64 %iptr__id.i95.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i96.us = inttoptr i64 %iptr__id.i95.us to double*
%val__id.i97.us = load double* %ptr__id.i96.us, align 8
%.lhs143.us = add i32 %.lhs143.lhs.us, %add_xb_load42_calltmp.i.us
%10 = shl i32 %.lhs143.us, 3
%iptr__id.i90.rhs.us = sext i32 %10 to i64
%iptr__id.i90.us = add i64 %iptr__id.i90.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i91.us = inttoptr i64 %iptr__id.i90.us to double*
%val__id.i92.us = load double* %ptr__id.i91.us, align 8
%.lhs144.us = add i32 %.lhs144.lhs.us, %add_xb_load42_calltmp.i.us
%11 = shl i32 %.lhs144.us, 3
%iptr__id.i85.rhs.us = sext i32 %11 to i64
%iptr__id.i85.us = add i64 %iptr__id.i85.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i86.us = inttoptr i64 %iptr__id.i85.us to double*
%val__id.i87.us = load double* %ptr__id.i86.us, align 8
%.lhs145.us = add i32 %.lhs145.lhs.us, %add_xb_load42_calltmp.i.us
%12 = shl i32 %.lhs145.us, 3
%iptr__id.i80.rhs.us = sext i32 %12 to i64
%iptr__id.i80.us = add i64 %iptr__id.i80.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i81.us = inttoptr i64 %iptr__id.i80.us to double*
%val__id.i82.us = load double* %ptr__id.i81.us, align 8
%.lhs146.us = add i32 %.lhs146.lhs.us, %add_xb_load42_calltmp.i.us
%13 = shl i32 %.lhs146.us, 3
%iptr__id.i75.rhs.us = sext i32 %13 to i64
%iptr__id.i75.us = add i64 %iptr__id.i75.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i76.us = inttoptr i64 %iptr__id.i75.us to double*
%val__id.i77.us = load double* %ptr__id.i76.us, align 8
%.lhs147.us = add i32 %.lhs147.lhs.us, %add_xb_load42_calltmp.i.us
%14 = shl i32 %.lhs147.us, 3
%iptr__id.i70.rhs.us = sext i32 %14 to i64
%iptr__id.i70.us = add i64 %iptr__id.i70.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i71.us = inttoptr i64 %iptr__id.i70.us to double*
%val__id.i72.us = load double* %ptr__id.i71.us, align 8
%.lhs148.us = add i32 %.lhs148.lhs.us, %add_xb_load42_calltmp.i.us
%15 = shl i32 %.lhs148.us, 3
%iptr__id.i65.rhs.us = sext i32 %15 to i64
%iptr__id.i65.us = add i64 %iptr__id.i65.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i66.us = inttoptr i64 %iptr__id.i65.us to double*
%val__id.i67.us = load double* %ptr__id.i66.us, align 8
%.lhs149.us = add i32 %.lhs149.lhs.us, %add_xb_load42_calltmp.i.us
%16 = shl i32 %.lhs149.us, 3
%iptr__id.i60.rhs.us = sext i32 %16 to i64
%iptr__id.i60.us = add i64 %iptr__id.i60.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i61.us = inttoptr i64 %iptr__id.i60.us to double*
%val__id.i62.us = load double* %ptr__id.i61.us, align 8
%.lhs150.us = add i32 %.lhs150.lhs.us, %add_xb_load42_calltmp.i.us
%17 = shl i32 %.lhs150.us, 3
%iptr__id.i55.rhs.us = sext i32 %17 to i64
%iptr__id.i55.us = add i64 %iptr__id.i55.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i56.us = inttoptr i64 %iptr__id.i55.us to double*
%val__id.i57.us = load double* %ptr__id.i56.us, align 8
%.lhs151.us = add i32 %add_xb_load42_calltmp.i.us, %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us
%18 = shl i32 %.lhs151.us, 3
%iptr__id.i50.rhs.us = sext i32 %18 to i64
%iptr__id.i50.us = add i64 %iptr__id.i50.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i51.us = inttoptr i64 %iptr__id.i50.us to double*
%val__id.i52.us = load double* %ptr__id.i51.us, align 8
%.lhs152.us = add i32 %.lhs152.lhs.us, %add_xb_load42_calltmp.i.us
%19 = shl i32 %.lhs152.us, 3
%iptr__id.i45.rhs.us = sext i32 %19 to i64
%iptr__id.i45.us = add i64 %iptr__id.i45.rhs.us, %Ain_load65_ptr2int.i
%ptr__id.i46.us = inttoptr i64 %iptr__id.i45.us to double*
%val__id.i47.us = load double* %ptr__id.i46.us, align 8
%val__id.i41.us = load double* %ptr__id.i51.us, align 8
%iptr__id.i32.us = add i64 %iptr__id.i50.rhs.us, %Aout_load_ptr2int.i
%ptr__id.i33.us = inttoptr i64 %iptr__id.i32.us to double*
%val__id.i34.us = load double* %ptr__id.i33.us, align 8
%iptr__id.i27.rhs.us = sext i32 %.lhs.us to i64
%iptr__id.i27.us = add i64 %iptr__id.i27.rhs.us, %vsq_load_ptr2int.i
%ptr__id.i28.us = inttoptr i64 %iptr__id.i27.us to double*
%val__id.i29.us = load double* %ptr__id.i28.us, align 8
%iptr__id.i23.us = add i64 %iptr__id.i50.rhs.us, %Aout_load_ptr2int.i
%ptr__id.i24.us = inttoptr i64 %iptr__id.i23.us to double*
%val__id.i25.lhs.us.lhs = fmul double %val__id.i41.us, 2.000000e+00
%val__id.i25.lhs.us = fsub double %val__id.i25.lhs.us.lhs, %val__id.i34.us
%val__id.i25.rhs.rhs.lhs.lhs.rhs.lhs.lhs.lhs.lhs.us = fadd double %val__id.i127.us, %val__id.i122.us
%val__id.i25.rhs.rhs.lhs.lhs.rhs.lhs.lhs.lhs.us = fadd double %val__id.i25.rhs.rhs.lhs.lhs.rhs.lhs.lhs.lhs.lhs.us, %val__id.i102.us
%val__id.i25.rhs.rhs.lhs.lhs.rhs.lhs.lhs.us = fadd double %val__id.i25.rhs.rhs.lhs.lhs.rhs.lhs.lhs.lhs.us, %val__id.i87.us
%val__id.i25.rhs.rhs.lhs.lhs.rhs.lhs.us = fadd double %val__id.i25.rhs.rhs.lhs.lhs.rhs.lhs.lhs.us, %val__id.i72.us
%val__id.i25.rhs.rhs.lhs.lhs.rhs.us = fadd double %val__id.i25.rhs.rhs.lhs.lhs.rhs.lhs.us, %val__id.i57.us
%val__id.i25.rhs.rhs.lhs.lhs.us = fmul double %coef_load19_offset_load.i, %val__id.i25.rhs.rhs.lhs.lhs.rhs.us
%val__id.i25.rhs.rhs.lhs.rhs.lhs.rhs.lhs.lhs.lhs.lhs.us = fadd double %val__id.i.us, %val__id.i132.us
%val__id.i25.rhs.rhs.lhs.rhs.lhs.rhs.lhs.lhs.lhs.us = fadd double %val__id.i25.rhs.rhs.lhs.rhs.lhs.rhs.lhs.lhs.lhs.lhs.us, %val__id.i117.us
%val__id.i25.rhs.rhs.lhs.rhs.lhs.rhs.lhs.lhs.us = fadd double %val__id.i25.rhs.rhs.lhs.rhs.lhs.rhs.lhs.lhs.lhs.us, %val__id.i97.us
%val__id.i25.rhs.rhs.lhs.rhs.lhs.rhs.lhs.us = fadd double %val__id.i25.rhs.rhs.lhs.rhs.lhs.rhs.lhs.lhs.us, %val__id.i82.us
%val__id.i25.rhs.rhs.lhs.rhs.lhs.rhs.us = fadd double %val__id.i25.rhs.rhs.lhs.rhs.lhs.rhs.lhs.us, %val__id.i67.us
%val__id.i25.rhs.rhs.lhs.rhs.lhs.us = fmul double %coef_load16_offset_load.i, %val__id.i25.rhs.rhs.lhs.rhs.lhs.rhs.us
%val__id.i25.rhs.rhs.lhs.rhs.rhs.us = fmul double %coef_load_offset_load.i, %val__id.i52.us
%val__id.i25.rhs.rhs.lhs.rhs.us = fadd double %val__id.i25.rhs.rhs.lhs.rhs.lhs.us, %val__id.i25.rhs.rhs.lhs.rhs.rhs.us
%val__id.i25.rhs.rhs.lhs.us = fadd double %val__id.i25.rhs.rhs.lhs.lhs.us, %val__id.i25.rhs.rhs.lhs.rhs.us
%val__id.i25.rhs.rhs.rhs.rhs.lhs.lhs.lhs.lhs.us = fadd double %val__id.i112.us, %val__id.i107.us
%val__id.i25.rhs.rhs.rhs.rhs.lhs.lhs.lhs.us = fadd double %val__id.i25.rhs.rhs.rhs.rhs.lhs.lhs.lhs.lhs.us, %val__id.i92.us
%val__id.i25.rhs.rhs.rhs.rhs.lhs.lhs.us = fadd double %val__id.i25.rhs.rhs.rhs.rhs.lhs.lhs.lhs.us, %val__id.i77.us
%val__id.i25.rhs.rhs.rhs.rhs.lhs.us = fadd double %val__id.i25.rhs.rhs.rhs.rhs.lhs.lhs.us, %val__id.i62.us
%val__id.i25.rhs.rhs.rhs.rhs.us = fadd double %val__id.i25.rhs.rhs.rhs.rhs.lhs.us, %val__id.i47.us
%val__id.i25.rhs.rhs.rhs.us = fmul double %coef_load22_offset_load.i, %val__id.i25.rhs.rhs.rhs.rhs.us
%val__id.i25.rhs.rhs.us = fadd double %val__id.i25.rhs.rhs.lhs.us, %val__id.i25.rhs.rhs.rhs.us
%val__id.i25.rhs.us = fmul double %val__id.i25.rhs.rhs.us, %val__id.i29.us
%val__id.i25.us = fadd double %val__id.i25.lhs.us, %val__id.i25.rhs.us
store double %val__id.i25.us, double* %ptr__id.i24.us, align 8
br label %safe_if_after_true.i.us
safe_if_after_true.i.us: ; preds = %pl_dolane.i.us, %for_loop37.i.us
%tid.i.i1.i.us = tail call i32 @llvm.nvvm.read.ptx.sreg.warpsize() #2
%add_xb_load243_calltmp241.i.us = add i32 %tid.i.i1.i.us, %xb.0.i158.us
%less_xb_load_x1_load.i.us = icmp slt i32 %add_xb_load243_calltmp241.i.us, %x1
br i1 %less_xb_load_x1_load.i.us, label %for_loop37.i.us, label %for_exit38.i.us
for_loop37.i.lr.ph.us: ; preds = %for_exit38.i.us, %for_test35.i.preheader.lr.ph
%y.0.i160.us = phi i32 [ %y_load244_plus1.i.us, %for_exit38.i.us ], [ %y0, %for_test35.i.preheader.lr.ph ]
%mul_y_load46_Nx_load47.i.us = mul i32 %y.0.i160.us, %Nx
%add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us = add i32 %mul_y_load46_Nx_load47.i.us, %mul_z_load45_Nxy_load.i
%.lhs138.lhs.us = add i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %Nx
%.lhs141.lhs.us = add i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %mul__Nx_load119.i
%.lhs142.lhs.us = sub i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %Nx
%.lhs143.lhs.us = add i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %mul__Nx_load167.i
%.lhs144.lhs.us = add i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %mul__Nx_load127.i
%.lhs145.lhs.us = add i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %mul_Nx_load_Ny_load.i
%.lhs146.lhs.us = add i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %mul__Nx_load175.i
%.lhs147.lhs.us = add i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %mul__Nxy_load136.i
%.lhs148.lhs.us = sub i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %mul_Nx_load_Ny_load.i
%.lhs149.lhs.us = add i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %mul__Nxy_load184.i
%.lhs150.lhs.us = add i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %mul__Nxy_load144.i
%.lhs152.lhs.us = add i32 %add_mul_z_load45_Nxy_load_mul_y_load46_Nx_load47.i.us, %mul__Nxy_load192.i
br label %for_loop37.i.us
for_exit31.i: ; preds = %for_exit38.i.us, %for_test35.i.preheader.lr.ph, %for_test28.i.preheader
%z_load245_plus1.i = add i32 %z.0.i162, 1
%exitcond163 = icmp eq i32 %z.0.i162, %0
br i1 %exitcond163, label %stencil_step___uniuniuniuniuniuniuniuniuniun_3C_Cund_3E_un_3C_Cund_3E_un_3C_Cund_3E_un_3C_und_3E_.exit, label %for_test28.i.preheader
stencil_step___uniuniuniuniuniuniuniuniuniun_3C_Cund_3E_un_3C_Cund_3E_un_3C_Cund_3E_un_3C_und_3E_.exit: ; preds = %for_exit31.i, %allocas
ret void
}
attributes #0 = { nounwind readnone }
attributes #1 = { nounwind "target-features"="+sm_35" }
attributes #2 = { nounwind }
!nvvm.annotations = !{!0}
!0 = metadata !{void (i32, i32, i32, i32, i32, i32, i32, i32, double*, double*, double*, double*)* @stencil_step_task, metadata !"kernel", i32 1}
!1 = metadata !{ }
!2 = metadata !{ metadata !"output", metadata !0 }
!3 = metadata !{ metadata !"input1", metadata !0 }
!4 = metadata !{ metadata !"input2", metadata !0 }