func-alias.ll 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-f128:128:128-n8:16:32:64"
  2. target triple = "x86_64-unknown-linux-gnu"
  3. ; RUN: opt < %s -basicaa -bb-vectorize -bb-vectorize-req-chain-depth=2 -instcombine -gvn -S | FileCheck %s
  4. ; The chain length is set to 2 so that this will do some vectorization; check that the order of the functions is unchanged.
  5. %struct.descriptor_dimension = type { i64, i64, i64 }
  6. %struct.__st_parameter_common = type { i32, i32, i8*, i32, i32, i8*, i32* }
  7. %struct.__st_parameter_dt = type { %struct.__st_parameter_common, i64, i64*, i64*, i8*, i8*, i32, i32, i8*, i8*, i32, i32, i8*, [256 x i8], i32*, i64, i8*, i32, i32, i8*, i8*, i32, i32, i8*, i8*, i32, i32, i8*, i8*, i32, [4 x i8] }
  8. %"struct.array4_real(kind=4)" = type { i8*, i64, i64, [4 x %struct.descriptor_dimension] }
  9. %"struct.array4_integer(kind=4).73" = type { i8*, i64, i64, [4 x %struct.descriptor_dimension] }
  10. %struct.array4_unknown = type { i8*, i64, i64, [4 x %struct.descriptor_dimension] }
  11. @.cst4 = external unnamed_addr constant [11 x i8], align 8
  12. @.cst823 = external unnamed_addr constant [214 x i8], align 64
  13. @j.4580 = external global i32
  14. @j1.4581 = external global i32
  15. @nty1.4590 = external global [2 x i8]
  16. @nty2.4591 = external global [2 x i8]
  17. @xr1.4592 = external global float
  18. @xr2.4593 = external global float
  19. @yr1.4594 = external global float
  20. @yr2.4595 = external global float
  21. @__main1_MOD_iave = external unnamed_addr global i32
  22. @__main1_MOD_igrp = external global i32
  23. @__main1_MOD_iounit = external global i32
  24. @__main1_MOD_ityp = external global i32
  25. @__main1_MOD_mclmsg = external unnamed_addr global %struct.array4_unknown, align 32
  26. @__main1_MOD_mxdate = external unnamed_addr global %"struct.array4_integer(kind=4).73", align 32
  27. @__main1_MOD_rmxval = external unnamed_addr global %"struct.array4_real(kind=4)", align 32
  28. declare void @_gfortran_st_write(%struct.__st_parameter_dt*)
  29. declare void @_gfortran_st_write_done(%struct.__st_parameter_dt*)
  30. declare void @_gfortran_transfer_character_write(%struct.__st_parameter_dt*, i8*, i32)
  31. declare void @_gfortran_transfer_integer_write(%struct.__st_parameter_dt*, i8*, i32)
  32. declare void @_gfortran_transfer_real_write(%struct.__st_parameter_dt*, i8*, i32)
  33. define i1 @"prtmax__<bb 3>_<bb 34>"(%struct.__st_parameter_dt* %memtmp3, i32 %D.4627_188.reload) nounwind {
  34. ; CHECK: prtmax__
  35. newFuncRoot:
  36. br label %"<bb 34>"
  37. codeRepl80.exitStub: ; preds = %"<bb 34>"
  38. ret i1 true
  39. "<bb 34>.<bb 25>_crit_edge.exitStub": ; preds = %"<bb 34>"
  40. ret i1 false
  41. "<bb 34>": ; preds = %newFuncRoot
  42. %tmp128 = getelementptr inbounds %struct.__st_parameter_dt, %struct.__st_parameter_dt* %memtmp3, i32 0, i32 0
  43. %tmp129 = getelementptr inbounds %struct.__st_parameter_common, %struct.__st_parameter_common* %tmp128, i32 0, i32 2
  44. store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.cst4, i64 0, i64 0), i8** %tmp129, align 8
  45. %tmp130 = getelementptr inbounds %struct.__st_parameter_dt, %struct.__st_parameter_dt* %memtmp3, i32 0, i32 0
  46. %tmp131 = getelementptr inbounds %struct.__st_parameter_common, %struct.__st_parameter_common* %tmp130, i32 0, i32 3
  47. store i32 31495, i32* %tmp131, align 4
  48. %tmp132 = getelementptr inbounds %struct.__st_parameter_dt, %struct.__st_parameter_dt* %memtmp3, i32 0, i32 5
  49. store i8* getelementptr inbounds ([214 x i8], [214 x i8]* @.cst823, i64 0, i64 0), i8** %tmp132, align 8
  50. %tmp133 = getelementptr inbounds %struct.__st_parameter_dt, %struct.__st_parameter_dt* %memtmp3, i32 0, i32 6
  51. store i32 214, i32* %tmp133, align 4
  52. %tmp134 = getelementptr inbounds %struct.__st_parameter_dt, %struct.__st_parameter_dt* %memtmp3, i32 0, i32 0
  53. %tmp135 = getelementptr inbounds %struct.__st_parameter_common, %struct.__st_parameter_common* %tmp134, i32 0, i32 0
  54. store i32 4096, i32* %tmp135, align 4
  55. %iounit.8748_288 = load i32, i32* @__main1_MOD_iounit, align 4
  56. %tmp136 = getelementptr inbounds %struct.__st_parameter_dt, %struct.__st_parameter_dt* %memtmp3, i32 0, i32 0
  57. %tmp137 = getelementptr inbounds %struct.__st_parameter_common, %struct.__st_parameter_common* %tmp136, i32 0, i32 1
  58. store i32 %iounit.8748_288, i32* %tmp137, align 4
  59. call void @_gfortran_st_write(%struct.__st_parameter_dt* %memtmp3) nounwind
  60. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_integer_write to void (%struct.__st_parameter_dt*, i32*, i32)*)(%struct.__st_parameter_dt* %memtmp3, i32* @j.4580, i32 4) nounwind
  61. ; CHECK: @_gfortran_transfer_integer_write
  62. %D.75807_289 = load i8*, i8** getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 0), align 8
  63. %j.8758_290 = load i32, i32* @j.4580, align 4
  64. %D.75760_291 = sext i32 %j.8758_290 to i64
  65. %iave.8736_292 = load i32, i32* @__main1_MOD_iave, align 4
  66. %D.75620_293 = sext i32 %iave.8736_292 to i64
  67. %D.75808_294 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 2, i32 0), align 8
  68. %D.75809_295 = mul nsw i64 %D.75620_293, %D.75808_294
  69. %igrp.8737_296 = load i32, i32* @__main1_MOD_igrp, align 4
  70. %D.75635_297 = sext i32 %igrp.8737_296 to i64
  71. %D.75810_298 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 1, i32 0), align 8
  72. %D.75811_299 = mul nsw i64 %D.75635_297, %D.75810_298
  73. %D.75812_300 = add nsw i64 %D.75809_295, %D.75811_299
  74. %D.75813_301 = add nsw i64 %D.75760_291, %D.75812_300
  75. %ityp.8750_302 = load i32, i32* @__main1_MOD_ityp, align 4
  76. %D.75704_303 = sext i32 %ityp.8750_302 to i64
  77. %D.75814_304 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 3, i32 0), align 8
  78. %D.75815_305 = mul nsw i64 %D.75704_303, %D.75814_304
  79. %D.75816_306 = add nsw i64 %D.75813_301, %D.75815_305
  80. %D.75817_307 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 1), align 8
  81. %D.75818_308 = add nsw i64 %D.75816_306, %D.75817_307
  82. %tmp138 = bitcast i8* %D.75807_289 to [0 x float]*
  83. %tmp139 = bitcast [0 x float]* %tmp138 to float*
  84. %D.75819_309 = getelementptr inbounds float, float* %tmp139, i64 %D.75818_308
  85. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_real_write to void (%struct.__st_parameter_dt*, float*, i32)*)(%struct.__st_parameter_dt* %memtmp3, float* %D.75819_309, i32 4) nounwind
  86. ; CHECK: @_gfortran_transfer_real_write
  87. %D.75820_310 = load i8*, i8** getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 0), align 8
  88. %j.8758_311 = load i32, i32* @j.4580, align 4
  89. %D.75760_312 = sext i32 %j.8758_311 to i64
  90. %iave.8736_313 = load i32, i32* @__main1_MOD_iave, align 4
  91. %D.75620_314 = sext i32 %iave.8736_313 to i64
  92. %D.75821_315 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 2, i32 0), align 8
  93. %D.75822_316 = mul nsw i64 %D.75620_314, %D.75821_315
  94. %igrp.8737_317 = load i32, i32* @__main1_MOD_igrp, align 4
  95. %D.75635_318 = sext i32 %igrp.8737_317 to i64
  96. %D.75823_319 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 1, i32 0), align 8
  97. %D.75824_320 = mul nsw i64 %D.75635_318, %D.75823_319
  98. %D.75825_321 = add nsw i64 %D.75822_316, %D.75824_320
  99. %D.75826_322 = add nsw i64 %D.75760_312, %D.75825_321
  100. %ityp.8750_323 = load i32, i32* @__main1_MOD_ityp, align 4
  101. %D.75704_324 = sext i32 %ityp.8750_323 to i64
  102. %D.75827_325 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 3, i32 0), align 8
  103. %D.75828_326 = mul nsw i64 %D.75704_324, %D.75827_325
  104. %D.75829_327 = add nsw i64 %D.75826_322, %D.75828_326
  105. %D.75830_328 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 1), align 8
  106. %D.75831_329 = add nsw i64 %D.75829_327, %D.75830_328
  107. %tmp140 = bitcast i8* %D.75820_310 to [0 x [1 x i8]]*
  108. %tmp141 = bitcast [0 x [1 x i8]]* %tmp140 to [1 x i8]*
  109. %D.75832_330 = getelementptr inbounds [1 x i8], [1 x i8]* %tmp141, i64 %D.75831_329
  110. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_character_write to void (%struct.__st_parameter_dt*, [1 x i8]*, i32)*)(%struct.__st_parameter_dt* %memtmp3, [1 x i8]* %D.75832_330, i32 1) nounwind
  111. ; CHECK: @_gfortran_transfer_character_write
  112. %D.75833_331 = load i8*, i8** getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 0), align 8
  113. %j.8758_332 = load i32, i32* @j.4580, align 4
  114. %D.75760_333 = sext i32 %j.8758_332 to i64
  115. %iave.8736_334 = load i32, i32* @__main1_MOD_iave, align 4
  116. %D.75620_335 = sext i32 %iave.8736_334 to i64
  117. %D.75834_336 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 2, i32 0), align 8
  118. %D.75835_337 = mul nsw i64 %D.75620_335, %D.75834_336
  119. %igrp.8737_338 = load i32, i32* @__main1_MOD_igrp, align 4
  120. %D.75635_339 = sext i32 %igrp.8737_338 to i64
  121. %D.75836_340 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 1, i32 0), align 8
  122. %D.75837_341 = mul nsw i64 %D.75635_339, %D.75836_340
  123. %D.75838_342 = add nsw i64 %D.75835_337, %D.75837_341
  124. %D.75839_343 = add nsw i64 %D.75760_333, %D.75838_342
  125. %ityp.8750_344 = load i32, i32* @__main1_MOD_ityp, align 4
  126. %D.75704_345 = sext i32 %ityp.8750_344 to i64
  127. %D.75840_346 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 3, i32 0), align 8
  128. %D.75841_347 = mul nsw i64 %D.75704_345, %D.75840_346
  129. %D.75842_348 = add nsw i64 %D.75839_343, %D.75841_347
  130. %D.75843_349 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 1), align 8
  131. %D.75844_350 = add nsw i64 %D.75842_348, %D.75843_349
  132. %tmp142 = bitcast i8* %D.75833_331 to [0 x i32]*
  133. %tmp143 = bitcast [0 x i32]* %tmp142 to i32*
  134. %D.75845_351 = getelementptr inbounds i32, i32* %tmp143, i64 %D.75844_350
  135. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_integer_write to void (%struct.__st_parameter_dt*, i32*, i32)*)(%struct.__st_parameter_dt* %memtmp3, i32* %D.75845_351, i32 4) nounwind
  136. ; CHECK: @_gfortran_transfer_integer_write
  137. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_real_write to void (%struct.__st_parameter_dt*, float*, i32)*)(%struct.__st_parameter_dt* %memtmp3, float* @xr1.4592, i32 4) nounwind
  138. ; CHECK: @_gfortran_transfer_real_write
  139. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_real_write to void (%struct.__st_parameter_dt*, float*, i32)*)(%struct.__st_parameter_dt* %memtmp3, float* @yr1.4594, i32 4) nounwind
  140. ; CHECK: @_gfortran_transfer_real_write
  141. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_character_write to void (%struct.__st_parameter_dt*, [2 x i8]*, i32)*)(%struct.__st_parameter_dt* %memtmp3, [2 x i8]* @nty1.4590, i32 2) nounwind
  142. ; CHECK: @_gfortran_transfer_character_write
  143. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_integer_write to void (%struct.__st_parameter_dt*, i32*, i32)*)(%struct.__st_parameter_dt* %memtmp3, i32* @j1.4581, i32 4) nounwind
  144. ; CHECK: @_gfortran_transfer_integer_write
  145. %D.75807_352 = load i8*, i8** getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 0), align 8
  146. %j1.8760_353 = load i32, i32* @j1.4581, align 4
  147. %D.75773_354 = sext i32 %j1.8760_353 to i64
  148. %iave.8736_355 = load i32, i32* @__main1_MOD_iave, align 4
  149. %D.75620_356 = sext i32 %iave.8736_355 to i64
  150. %D.75808_357 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 2, i32 0), align 8
  151. %D.75809_358 = mul nsw i64 %D.75620_356, %D.75808_357
  152. %igrp.8737_359 = load i32, i32* @__main1_MOD_igrp, align 4
  153. %D.75635_360 = sext i32 %igrp.8737_359 to i64
  154. %D.75810_361 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 1, i32 0), align 8
  155. %D.75811_362 = mul nsw i64 %D.75635_360, %D.75810_361
  156. %D.75812_363 = add nsw i64 %D.75809_358, %D.75811_362
  157. %D.75846_364 = add nsw i64 %D.75773_354, %D.75812_363
  158. %ityp.8750_365 = load i32, i32* @__main1_MOD_ityp, align 4
  159. %D.75704_366 = sext i32 %ityp.8750_365 to i64
  160. %D.75814_367 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 3, i64 3, i32 0), align 8
  161. %D.75815_368 = mul nsw i64 %D.75704_366, %D.75814_367
  162. %D.75847_369 = add nsw i64 %D.75846_364, %D.75815_368
  163. %D.75817_370 = load i64, i64* getelementptr inbounds (%"struct.array4_real(kind=4)", %"struct.array4_real(kind=4)"* @__main1_MOD_rmxval, i64 0, i32 1), align 8
  164. %D.75848_371 = add nsw i64 %D.75847_369, %D.75817_370
  165. %tmp144 = bitcast i8* %D.75807_352 to [0 x float]*
  166. %tmp145 = bitcast [0 x float]* %tmp144 to float*
  167. %D.75849_372 = getelementptr inbounds float, float* %tmp145, i64 %D.75848_371
  168. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_real_write to void (%struct.__st_parameter_dt*, float*, i32)*)(%struct.__st_parameter_dt* %memtmp3, float* %D.75849_372, i32 4) nounwind
  169. ; CHECK: @_gfortran_transfer_real_write
  170. %D.75820_373 = load i8*, i8** getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 0), align 8
  171. %j1.8760_374 = load i32, i32* @j1.4581, align 4
  172. %D.75773_375 = sext i32 %j1.8760_374 to i64
  173. %iave.8736_376 = load i32, i32* @__main1_MOD_iave, align 4
  174. %D.75620_377 = sext i32 %iave.8736_376 to i64
  175. %D.75821_378 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 2, i32 0), align 8
  176. %D.75822_379 = mul nsw i64 %D.75620_377, %D.75821_378
  177. %igrp.8737_380 = load i32, i32* @__main1_MOD_igrp, align 4
  178. %D.75635_381 = sext i32 %igrp.8737_380 to i64
  179. %D.75823_382 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 1, i32 0), align 8
  180. %D.75824_383 = mul nsw i64 %D.75635_381, %D.75823_382
  181. %D.75825_384 = add nsw i64 %D.75822_379, %D.75824_383
  182. %D.75850_385 = add nsw i64 %D.75773_375, %D.75825_384
  183. %ityp.8750_386 = load i32, i32* @__main1_MOD_ityp, align 4
  184. %D.75704_387 = sext i32 %ityp.8750_386 to i64
  185. %D.75827_388 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 3, i64 3, i32 0), align 8
  186. %D.75828_389 = mul nsw i64 %D.75704_387, %D.75827_388
  187. %D.75851_390 = add nsw i64 %D.75850_385, %D.75828_389
  188. %D.75830_391 = load i64, i64* getelementptr inbounds (%struct.array4_unknown, %struct.array4_unknown* @__main1_MOD_mclmsg, i64 0, i32 1), align 8
  189. %D.75852_392 = add nsw i64 %D.75851_390, %D.75830_391
  190. %tmp146 = bitcast i8* %D.75820_373 to [0 x [1 x i8]]*
  191. %tmp147 = bitcast [0 x [1 x i8]]* %tmp146 to [1 x i8]*
  192. %D.75853_393 = getelementptr inbounds [1 x i8], [1 x i8]* %tmp147, i64 %D.75852_392
  193. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_character_write to void (%struct.__st_parameter_dt*, [1 x i8]*, i32)*)(%struct.__st_parameter_dt* %memtmp3, [1 x i8]* %D.75853_393, i32 1) nounwind
  194. ; CHECK: @_gfortran_transfer_character_write
  195. %D.75833_394 = load i8*, i8** getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 0), align 8
  196. %j1.8760_395 = load i32, i32* @j1.4581, align 4
  197. %D.75773_396 = sext i32 %j1.8760_395 to i64
  198. %iave.8736_397 = load i32, i32* @__main1_MOD_iave, align 4
  199. %D.75620_398 = sext i32 %iave.8736_397 to i64
  200. %D.75834_399 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 2, i32 0), align 8
  201. %D.75835_400 = mul nsw i64 %D.75620_398, %D.75834_399
  202. %igrp.8737_401 = load i32, i32* @__main1_MOD_igrp, align 4
  203. %D.75635_402 = sext i32 %igrp.8737_401 to i64
  204. %D.75836_403 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 1, i32 0), align 8
  205. %D.75837_404 = mul nsw i64 %D.75635_402, %D.75836_403
  206. %D.75838_405 = add nsw i64 %D.75835_400, %D.75837_404
  207. %D.75854_406 = add nsw i64 %D.75773_396, %D.75838_405
  208. %ityp.8750_407 = load i32, i32* @__main1_MOD_ityp, align 4
  209. %D.75704_408 = sext i32 %ityp.8750_407 to i64
  210. %D.75840_409 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 3, i64 3, i32 0), align 8
  211. %D.75841_410 = mul nsw i64 %D.75704_408, %D.75840_409
  212. %D.75855_411 = add nsw i64 %D.75854_406, %D.75841_410
  213. %D.75843_412 = load i64, i64* getelementptr inbounds (%"struct.array4_integer(kind=4).73", %"struct.array4_integer(kind=4).73"* @__main1_MOD_mxdate, i64 0, i32 1), align 8
  214. %D.75856_413 = add nsw i64 %D.75855_411, %D.75843_412
  215. %tmp148 = bitcast i8* %D.75833_394 to [0 x i32]*
  216. %tmp149 = bitcast [0 x i32]* %tmp148 to i32*
  217. %D.75857_414 = getelementptr inbounds i32, i32* %tmp149, i64 %D.75856_413
  218. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_integer_write to void (%struct.__st_parameter_dt*, i32*, i32)*)(%struct.__st_parameter_dt* %memtmp3, i32* %D.75857_414, i32 4) nounwind
  219. ; CHECK: @_gfortran_transfer_integer_write
  220. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_real_write to void (%struct.__st_parameter_dt*, float*, i32)*)(%struct.__st_parameter_dt* %memtmp3, float* @xr2.4593, i32 4) nounwind
  221. ; CHECK: @_gfortran_transfer_real_write
  222. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_real_write to void (%struct.__st_parameter_dt*, float*, i32)*)(%struct.__st_parameter_dt* %memtmp3, float* @yr2.4595, i32 4) nounwind
  223. ; CHECK: @_gfortran_transfer_real_write
  224. call void bitcast (void (%struct.__st_parameter_dt*, i8*, i32)* @_gfortran_transfer_character_write to void (%struct.__st_parameter_dt*, [2 x i8]*, i32)*)(%struct.__st_parameter_dt* %memtmp3, [2 x i8]* @nty2.4591, i32 2) nounwind
  225. ; CHECK: @_gfortran_transfer_character_write
  226. call void @_gfortran_st_write_done(%struct.__st_parameter_dt* %memtmp3) nounwind
  227. ; CHECK: @_gfortran_st_write_done
  228. %j.8758_415 = load i32, i32* @j.4580, align 4
  229. %D.4634_416 = icmp eq i32 %j.8758_415, %D.4627_188.reload
  230. %j.8758_417 = load i32, i32* @j.4580, align 4
  231. %j.8770_418 = add nsw i32 %j.8758_417, 1
  232. store i32 %j.8770_418, i32* @j.4580, align 4
  233. %tmp150 = icmp ne i1 %D.4634_416, false
  234. br i1 %tmp150, label %codeRepl80.exitStub, label %"<bb 34>.<bb 25>_crit_edge.exitStub"
  235. }