diku-dk / futhark

:boom::computer::boom: A data-parallel functional programming language
http://futhark-lang.org
ISC License
2.37k stars 164 forks source link

Internal compiler error (type error after pass 'explicit allocations') #1546

Closed nqpz closed 2 years ago

nqpz commented 2 years ago

When running make in https://github.com/nqpz/flowamok I get the following long compiler error. I'm not sure where it goes wrong.

Internal compiler error.  Please report this:
  https://github.com/diku-dk/futhark/issues
Type error after pass 'explicit allocations':
In function entry_key
When checking function body
In expression of statement
  {ext_173407 : ({}, i64),
   ext_173406 : ({}, i64),
   ext_173405 : ({}, i64),
   ext_173404 : ({}, i64),
   ext_173403 : ({}, i64),
   ext_mem_173402 : ({cycle_checks_mem_167155}, mem),
   ext_173401 : ({}, i64),
   ext_173400 : ({}, i64),
   ext_173399 : ({}, i64),
   ext_173398 : ({}, i64),
   ext_173397 : ({}, i64),
   ext_mem_173396 : ({cycle_checks_mem_167156}, mem),
   ext_mem_173395 : ({grids_mem_167157}, mem),
   ext_mem_173394 : ({grids_mem_167158}, mem),
   ext_mem_173393 : ({grids_mem_167159}, mem),
   ext_mem_173392 : ({grids_mem_167160}, mem),
   ext_mem_173391 : ({grids_mem_167161}, mem),
   ext_mem_173390 : ({grids_mem_167162}, mem),
   ext_mem_173389 : ({grids_mem_167163}, mem),
   ext_mem_173388 : ({grids_mem_167164}, mem),
   ext_mem_173387 : ({grids_mem_167165}, mem),
   ext_mem_173386 : ({grids_mem_167166}, mem),
   ext_mem_173385 : ({grids_mem_167167}, mem),
   ext_mem_173384 : ({grids_mem_167168}, mem),
   ext_mem_173383 : ({steps_mem_167169}, mem),
   x_140790 : ({}, i64),
   x_140791 : ({}, i64),
   x_140792 : ({}, bool),
   x_140793 : ({cycle_checks_140672},
               [x_140790][x_140741][x_140742]i8 @ ext_mem_173402 ->
               {base: [ext_173406, ext_173405, ext_173404]; contiguous: true;
                LMADs: [{offset: 0i64; strides: [ext_173403, ext_173404, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [ext_173407, x_140741, x_140742];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140794 : ({cycle_checks_140673},
               [x_140791][x_140741][x_140742]i8 @ ext_mem_173396 ->
               {base: [ext_173400, ext_173399, ext_173398]; contiguous: true;
                LMADs: [{offset: 0i64; strides: [ext_173397, ext_173398, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [ext_173401, x_140741, x_140742];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140795 : ({grids_140674},
               [x_140743][x_140744][x_140745]unit @ ext_mem_173395 ->
               {base: [size_140665, size_140666, size_140667]; contiguous: true;
                LMADs: [{offset: 0i64;
                         strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [x_140743, x_140744, x_140745];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140796 : ({grids_140675},
               [x_140743][x_140744][x_140745]bool @ ext_mem_173394 ->
               {base: [size_140665, size_140666, size_140667]; contiguous: true;
                LMADs: [{offset: 0i64;
                         strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [x_140743, x_140744, x_140745];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140797 : ({grids_140676},
               [x_140743][x_140744][x_140745]bool @ ext_mem_173393 ->
               {base: [size_140665, size_140666, size_140667]; contiguous: true;
                LMADs: [{offset: 0i64;
                         strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [x_140743, x_140744, x_140745];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140798 : ({grids_140677},
               [x_140743][x_140744][x_140745]bool @ ext_mem_173392 ->
               {base: [size_140665, size_140666, size_140667]; contiguous: true;
                LMADs: [{offset: 0i64;
                         strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [x_140743, x_140744, x_140745];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140799 : ({grids_140678},
               [x_140743][x_140744][x_140745]bool @ ext_mem_173391 ->
               {base: [size_140665, size_140666, size_140667]; contiguous: true;
                LMADs: [{offset: 0i64;
                         strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [x_140743, x_140744, x_140745];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140800 : ({grids_140679},
               [x_140743][x_140744][x_140745]i32 @ ext_mem_173390 ->
               {base: [size_140665, size_140666, size_140667]; contiguous: true;
                LMADs: [{offset: 0i64;
                         strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [x_140743, x_140744, x_140745];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140801 : ({grids_140680},
               [x_140743][x_140744][x_140745]i8 @ ext_mem_173389 ->
               {base: [size_140665, size_140666, size_140667]; contiguous: true;
                LMADs: [{offset: 0i64;
                         strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [x_140743, x_140744, x_140745];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140802 : ({grids_140681},
               [x_140743][x_140744][x_140745]i8 @ ext_mem_173388 ->
               {base: [size_140665, size_140666, size_140667]; contiguous: true;
                LMADs: [{offset: 0i64;
                         strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [x_140743, x_140744, x_140745];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140803 : ({grids_140682},
               [x_140743][x_140744][x_140745]i8 @ ext_mem_173387 ->
               {base: [size_140665, size_140666, size_140667]; contiguous: true;
                LMADs: [{offset: 0i64;
                         strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [x_140743, x_140744, x_140745];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140804 : ({grids_140683},
               [x_140743][x_140744][x_140745]i8 @ ext_mem_173386 ->
               {base: [size_140665, size_140666, size_140667]; contiguous: true;
                LMADs: [{offset: 0i64;
                         strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [x_140743, x_140744, x_140745];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140805 : ({grids_140684},
               [x_140743][x_140744][x_140745]i64 @ ext_mem_173385 ->
               {base: [size_140665, size_140666, size_140667]; contiguous: true;
                LMADs: [{offset: 0i64;
                         strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [x_140743, x_140744, x_140745];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140806 : ({grids_140685},
               [x_140743][x_140744][x_140745]i64 @ ext_mem_173384 ->
               {base: [size_140665, size_140666, size_140667]; contiguous: true;
                LMADs: [{offset: 0i64;
                         strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                         rotates: [0i64, 0i64, 0i64];
                         shape: [x_140743, x_140744, x_140745];
                         permutation: [0, 1, 2];
                         monotonicity: [Inc, Inc, Inc]}]}),
   x_140807 : ({}, i64),
   x_140808 : ({}, i64),
   x_140809 : ({}, i64),
   x_140810 : ({}, i64),
   x_140811 : ({}, i64),
   x_140812 : ({steps_140692}, [size_140668]i64 @ ext_mem_173383 ->
               {base: [size_140668]; contiguous: true; LMADs: [{offset: 0i64;
                                                                strides: [1i64];
                                                                rotates: [0i64];
                                                                shape: [size_140668];
                                                                permutation: [0];
                                                                monotonicity: [Inc]}]}),
   x_140813 : ({}, i32)}
in true branch
In expression of statement
  {ext_173380 : ({}, i64),
   ext_173379 : ({}, i64),
   ext_173378 : ({}, i64),
   ext_173377 : ({}, i64),
   ext_173376 : ({}, i64),
   ext_mem_173375 : ({cycle_checks_mem_167155}, mem),
   ext_173374 : ({}, i64),
   ext_173373 : ({}, i64),
   ext_173372 : ({}, i64),
   ext_173371 : ({}, i64),
   ext_173370 : ({}, i64),
   ext_mem_173369 : ({cycle_checks_mem_167156}, mem),
   ext_mem_173368 : ({grids_mem_167157}, mem),
   ext_mem_173367 : ({grids_mem_167158}, mem),
   ext_mem_173366 : ({grids_mem_167159}, mem),
   ext_mem_173365 : ({grids_mem_167160}, mem),
   ext_mem_173364 : ({grids_mem_167161}, mem),
   ext_mem_173363 : ({grids_mem_167162}, mem),
   ext_mem_173362 : ({grids_mem_167163}, mem),
   ext_mem_173361 : ({grids_mem_167164}, mem),
   ext_mem_173360 : ({grids_mem_167165}, mem),
   ext_mem_173359 : ({grids_mem_167166}, mem),
   ext_mem_173358 : ({grids_mem_167167}, mem),
   ext_mem_173357 : ({grids_mem_167168}, mem),
   ext_mem_173356 : ({steps_mem_167169}, mem),
   case_res_140814 : ({}, i64),
   case_res_140815 : ({}, i64),
   case_res_140816 : ({}, bool),
   case_res_140817 : ({cycle_checks_140672},
                      [case_res_140814][case_res_140736][case_res_140737]i8 @ ext_mem_173375 ->
                      {base: [ext_173379, ext_173378, ext_173377];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [ext_173376, ext_173377, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [ext_173380, case_res_140736, case_res_140737];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140818 : ({cycle_checks_140673},
                      [case_res_140815][case_res_140736][case_res_140737]i8 @ ext_mem_173369 ->
                      {base: [ext_173373, ext_173372, ext_173371];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [ext_173370, ext_173371, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [ext_173374, case_res_140736, case_res_140737];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140819 : ({grids_140674},
                      [case_res_140738][case_res_140739][case_res_140740]unit @ ext_mem_173368 ->
                      {base: [size_140665, size_140666, size_140667];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_140738, case_res_140739, case_res_140740];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140820 : ({grids_140675},
                      [case_res_140738][case_res_140739][case_res_140740]bool @ ext_mem_173367 ->
                      {base: [size_140665, size_140666, size_140667];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_140738, case_res_140739, case_res_140740];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140821 : ({grids_140676},
                      [case_res_140738][case_res_140739][case_res_140740]bool @ ext_mem_173366 ->
                      {base: [size_140665, size_140666, size_140667];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_140738, case_res_140739, case_res_140740];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140822 : ({grids_140677},
                      [case_res_140738][case_res_140739][case_res_140740]bool @ ext_mem_173365 ->
                      {base: [size_140665, size_140666, size_140667];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_140738, case_res_140739, case_res_140740];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140823 : ({grids_140678},
                      [case_res_140738][case_res_140739][case_res_140740]bool @ ext_mem_173364 ->
                      {base: [size_140665, size_140666, size_140667];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_140738, case_res_140739, case_res_140740];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140824 : ({grids_140679},
                      [case_res_140738][case_res_140739][case_res_140740]i32 @ ext_mem_173363 ->
                      {base: [size_140665, size_140666, size_140667];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_140738, case_res_140739, case_res_140740];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140825 : ({grids_140680},
                      [case_res_140738][case_res_140739][case_res_140740]i8 @ ext_mem_173362 ->
                      {base: [size_140665, size_140666, size_140667];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_140738, case_res_140739, case_res_140740];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140826 : ({grids_140681},
                      [case_res_140738][case_res_140739][case_res_140740]i8 @ ext_mem_173361 ->
                      {base: [size_140665, size_140666, size_140667];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_140738, case_res_140739, case_res_140740];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140827 : ({grids_140682},
                      [case_res_140738][case_res_140739][case_res_140740]i8 @ ext_mem_173360 ->
                      {base: [size_140665, size_140666, size_140667];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_140738, case_res_140739, case_res_140740];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140828 : ({grids_140683},
                      [case_res_140738][case_res_140739][case_res_140740]i8 @ ext_mem_173359 ->
                      {base: [size_140665, size_140666, size_140667];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_140738, case_res_140739, case_res_140740];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140829 : ({grids_140684},
                      [case_res_140738][case_res_140739][case_res_140740]i64 @ ext_mem_173358 ->
                      {base: [size_140665, size_140666, size_140667];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_140738, case_res_140739, case_res_140740];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140830 : ({grids_140685},
                      [case_res_140738][case_res_140739][case_res_140740]i64 @ ext_mem_173357 ->
                      {base: [size_140665, size_140666, size_140667];
                       contiguous: true; LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_140738, case_res_140739, case_res_140740];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_140831 : ({}, i64),
   case_res_140832 : ({}, i64),
   case_res_140833 : ({}, i64),
   case_res_140834 : ({}, i64),
   case_res_140835 : ({}, i64),
   case_res_140836 : ({steps_140692}, [size_140668]i64 @ ext_mem_173356 ->
                      {base: [size_140668]; contiguous: true;
                       LMADs: [{offset: 0i64; strides: [1i64]; rotates: [0i64];
                                shape: [size_140668]; permutation: [0];
                                monotonicity: [Inc]}]}),
   case_res_140837 : ({}, i32)}
in false branch
In expression of statement
  {ext_mem_173353 : ({}, mem),
   ext_mem_173352 : ({}, mem),
   ext_mem_173351 : ({grids_mem_167157}, mem),
   ext_mem_173350 : ({grids_mem_167158}, mem),
   ext_mem_173349 : ({grids_mem_167159}, mem),
   ext_mem_173348 : ({grids_mem_167160}, mem),
   ext_mem_173347 : ({grids_mem_167161}, mem),
   ext_mem_173346 : ({grids_mem_167162}, mem),
   ext_mem_173345 : ({grids_mem_167163}, mem),
   ext_mem_173344 : ({grids_mem_167164}, mem),
   ext_mem_173343 : ({grids_mem_167165}, mem),
   ext_mem_173342 : ({grids_mem_167166}, mem),
   ext_mem_173341 : ({grids_mem_167167}, mem),
   ext_mem_173340 : ({grids_mem_167168}, mem),
   ext_mem_173339 : ({steps_mem_167169}, mem),
   case_res_f_res_143093 : ({}, i64),
   case_res_f_res_143094 : ({}, i64),
   case_res_f_res_143095 : ({}, bool),
   case_res_f_res_143096 : ({},
                            [case_res_f_res_143093][case_res_f_res_140731][case_res_f_res_140732]i8 @ ext_mem_173353 ->
                            {base: [ext_mem_173353, case_res_f_res_140731,
                                    case_res_f_res_140732]; contiguous: true;
                             LMADs: [{offset: 0i64;
                                      strides: [mul_nw64 (case_res_f_res_140732) (case_res_f_res_140731), case_res_f_res_140732, 1i64];
                                      rotates: [0i64, 0i64, 0i64];
                                      shape: [ext_mem_173353, case_res_f_res_140731, case_res_f_res_140732];
                                      permutation: [0, 1, 2];
                                      monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143097 : ({},
                            [case_res_f_res_143094][case_res_f_res_140731][case_res_f_res_140732]i8 @ ext_mem_173352 ->
                            {base: [ext_mem_173352, case_res_f_res_140731,
                                    case_res_f_res_140732]; contiguous: true;
                             LMADs: [{offset: 0i64;
                                      strides: [mul_nw64 (case_res_f_res_140732) (case_res_f_res_140731), case_res_f_res_140732, 1i64];
                                      rotates: [0i64, 0i64, 0i64];
                                      shape: [ext_mem_173352, case_res_f_res_140731, case_res_f_res_140732];
                                      permutation: [0, 1, 2];
                                      monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143098 : ({grids_140674},
                            [case_res_f_res_140733][case_res_f_res_140734][case_res_f_res_140735]unit @ ext_mem_173351 ->
                            {base: [size_140665, size_140666, size_140667];
                             contiguous: true; LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_140733, case_res_f_res_140734, case_res_f_res_140735];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143099 : ({grids_140675},
                            [case_res_f_res_140733][case_res_f_res_140734][case_res_f_res_140735]bool @ ext_mem_173350 ->
                            {base: [size_140665, size_140666, size_140667];
                             contiguous: true; LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_140733, case_res_f_res_140734, case_res_f_res_140735];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143100 : ({grids_140676},
                            [case_res_f_res_140733][case_res_f_res_140734][case_res_f_res_140735]bool @ ext_mem_173349 ->
                            {base: [size_140665, size_140666, size_140667];
                             contiguous: true; LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_140733, case_res_f_res_140734, case_res_f_res_140735];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143101 : ({grids_140677},
                            [case_res_f_res_140733][case_res_f_res_140734][case_res_f_res_140735]bool @ ext_mem_173348 ->
                            {base: [size_140665, size_140666, size_140667];
                             contiguous: true; LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_140733, case_res_f_res_140734, case_res_f_res_140735];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143102 : ({grids_140678},
                            [case_res_f_res_140733][case_res_f_res_140734][case_res_f_res_140735]bool @ ext_mem_173347 ->
                            {base: [size_140665, size_140666, size_140667];
                             contiguous: true; LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_140733, case_res_f_res_140734, case_res_f_res_140735];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143103 : ({grids_140679},
                            [case_res_f_res_140733][case_res_f_res_140734][case_res_f_res_140735]i32 @ ext_mem_173346 ->
                            {base: [size_140665, size_140666, size_140667];
                             contiguous: true; LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_140733, case_res_f_res_140734, case_res_f_res_140735];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143104 : ({grids_140680},
                            [case_res_f_res_140733][case_res_f_res_140734][case_res_f_res_140735]i8 @ ext_mem_173345 ->
                            {base: [size_140665, size_140666, size_140667];
                             contiguous: true; LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_140733, case_res_f_res_140734, case_res_f_res_140735];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143105 : ({grids_140681},
                            [case_res_f_res_140733][case_res_f_res_140734][case_res_f_res_140735]i8 @ ext_mem_173344 ->
                            {base: [size_140665, size_140666, size_140667];
                             contiguous: true; LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_140733, case_res_f_res_140734, case_res_f_res_140735];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143106 : ({grids_140682},
                            [case_res_f_res_140733][case_res_f_res_140734][case_res_f_res_140735]i8 @ ext_mem_173343 ->
                            {base: [size_140665, size_140666, size_140667];
                             contiguous: true; LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_140733, case_res_f_res_140734, case_res_f_res_140735];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143107 : ({grids_140683},
                            [case_res_f_res_140733][case_res_f_res_140734][case_res_f_res_140735]i8 @ ext_mem_173342 ->
                            {base: [size_140665, size_140666, size_140667];
                             contiguous: true; LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_140733, case_res_f_res_140734, case_res_f_res_140735];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143108 : ({grids_140684},
                            [case_res_f_res_140733][case_res_f_res_140734][case_res_f_res_140735]i64 @ ext_mem_173341 ->
                            {base: [size_140665, size_140666, size_140667];
                             contiguous: true; LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_140733, case_res_f_res_140734, case_res_f_res_140735];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143109 : ({grids_140685},
                            [case_res_f_res_140733][case_res_f_res_140734][case_res_f_res_140735]i64 @ ext_mem_173340 ->
                            {base: [size_140665, size_140666, size_140667];
                             contiguous: true; LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_140733, case_res_f_res_140734, case_res_f_res_140735];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_143110 : ({}, i64),
   case_res_f_res_143111 : ({}, i64),
   case_res_f_res_143112 : ({}, i64),
   case_res_f_res_143113 : ({}, i64),
   case_res_f_res_143114 : ({steps_140692}, [size_140668]i64 @ ext_mem_173339 ->
                            {base: [size_140668]; contiguous: true;
                             LMADs: [{offset: 0i64; strides: [1i64];
                                      rotates: [0i64]; shape: [size_140668];
                                      permutation: [0]; monotonicity: [Inc]}]}),
   case_res_f_res_143115 : ({}, i32)}
in false branch
In expression of statement
  {ext_mem_173318 : ({}, mem),
   ext_mem_173317 : ({}, mem),
   ext_mem_173316 : ({grids_mem_167157}, mem),
   ext_mem_173315 : ({grids_mem_167158}, mem),
   ext_mem_173314 : ({grids_mem_167159}, mem),
   ext_mem_173313 : ({grids_mem_167160}, mem),
   ext_mem_173312 : ({grids_mem_167161}, mem),
   ext_mem_173311 : ({grids_mem_167162}, mem),
   ext_mem_173310 : ({grids_mem_167163}, mem),
   ext_mem_173309 : ({grids_mem_167164}, mem),
   ext_mem_173308 : ({grids_mem_167165}, mem),
   ext_mem_173307 : ({grids_mem_167166}, mem),
   ext_mem_173306 : ({grids_mem_167167}, mem),
   ext_mem_173305 : ({grids_mem_167168}, mem),
   ext_mem_173304 : ({steps_mem_167169}, mem),
   case_res_f_res_f_res_143715 : ({}, i64),
   case_res_f_res_f_res_143716 : ({}, i64),
   case_res_f_res_f_res_143717 : ({}, bool),
   case_res_f_res_f_res_143718 : ({},
                                  [case_res_f_res_f_res_143715][case_res_f_res_f_res_140726][case_res_f_res_f_res_140727]i8 @ ext_mem_173318 ->
                                  {base: [ext_mem_173318,
                                          case_res_f_res_f_res_140726,
                                          case_res_f_res_f_res_140727];
                                   contiguous: true; LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (case_res_f_res_f_res_140727) (case_res_f_res_f_res_140726), case_res_f_res_f_res_140727, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [ext_mem_173318, case_res_f_res_f_res_140726, case_res_f_res_f_res_140727];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143719 : ({},
                                  [case_res_f_res_f_res_143716][case_res_f_res_f_res_140726][case_res_f_res_f_res_140727]i8 @ ext_mem_173317 ->
                                  {base: [ext_mem_173317,
                                          case_res_f_res_f_res_140726,
                                          case_res_f_res_f_res_140727];
                                   contiguous: true; LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (case_res_f_res_f_res_140727) (case_res_f_res_f_res_140726), case_res_f_res_f_res_140727, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [ext_mem_173317, case_res_f_res_f_res_140726, case_res_f_res_f_res_140727];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143720 : ({grids_140674},
                                  [case_res_f_res_f_res_140728][case_res_f_res_f_res_140729][case_res_f_res_f_res_140730]unit @ ext_mem_173316 ->
                                  {base: [size_140665, size_140666,
                                          size_140667]; contiguous: true;
                                   LMADs: [{offset: 0i64;
                                            strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                            rotates: [0i64, 0i64, 0i64];
                                            shape: [case_res_f_res_f_res_140728, case_res_f_res_f_res_140729, case_res_f_res_f_res_140730];
                                            permutation: [0, 1, 2];
                                            monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143721 : ({grids_140675},
                                  [case_res_f_res_f_res_140728][case_res_f_res_f_res_140729][case_res_f_res_f_res_140730]bool @ ext_mem_173315 ->
                                  {base: [size_140665, size_140666,
                                          size_140667]; contiguous: true;
                                   LMADs: [{offset: 0i64;
                                            strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                            rotates: [0i64, 0i64, 0i64];
                                            shape: [case_res_f_res_f_res_140728, case_res_f_res_f_res_140729, case_res_f_res_f_res_140730];
                                            permutation: [0, 1, 2];
                                            monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143722 : ({grids_140676},
                                  [case_res_f_res_f_res_140728][case_res_f_res_f_res_140729][case_res_f_res_f_res_140730]bool @ ext_mem_173314 ->
                                  {base: [size_140665, size_140666,
                                          size_140667]; contiguous: true;
                                   LMADs: [{offset: 0i64;
                                            strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                            rotates: [0i64, 0i64, 0i64];
                                            shape: [case_res_f_res_f_res_140728, case_res_f_res_f_res_140729, case_res_f_res_f_res_140730];
                                            permutation: [0, 1, 2];
                                            monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143723 : ({grids_140677},
                                  [case_res_f_res_f_res_140728][case_res_f_res_f_res_140729][case_res_f_res_f_res_140730]bool @ ext_mem_173313 ->
                                  {base: [size_140665, size_140666,
                                          size_140667]; contiguous: true;
                                   LMADs: [{offset: 0i64;
                                            strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                            rotates: [0i64, 0i64, 0i64];
                                            shape: [case_res_f_res_f_res_140728, case_res_f_res_f_res_140729, case_res_f_res_f_res_140730];
                                            permutation: [0, 1, 2];
                                            monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143724 : ({grids_140678},
                                  [case_res_f_res_f_res_140728][case_res_f_res_f_res_140729][case_res_f_res_f_res_140730]bool @ ext_mem_173312 ->
                                  {base: [size_140665, size_140666,
                                          size_140667]; contiguous: true;
                                   LMADs: [{offset: 0i64;
                                            strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                            rotates: [0i64, 0i64, 0i64];
                                            shape: [case_res_f_res_f_res_140728, case_res_f_res_f_res_140729, case_res_f_res_f_res_140730];
                                            permutation: [0, 1, 2];
                                            monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143725 : ({grids_140679},
                                  [case_res_f_res_f_res_140728][case_res_f_res_f_res_140729][case_res_f_res_f_res_140730]i32 @ ext_mem_173311 ->
                                  {base: [size_140665, size_140666,
                                          size_140667]; contiguous: true;
                                   LMADs: [{offset: 0i64;
                                            strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                            rotates: [0i64, 0i64, 0i64];
                                            shape: [case_res_f_res_f_res_140728, case_res_f_res_f_res_140729, case_res_f_res_f_res_140730];
                                            permutation: [0, 1, 2];
                                            monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143726 : ({grids_140680},
                                  [case_res_f_res_f_res_140728][case_res_f_res_f_res_140729][case_res_f_res_f_res_140730]i8 @ ext_mem_173310 ->
                                  {base: [size_140665, size_140666,
                                          size_140667]; contiguous: true;
                                   LMADs: [{offset: 0i64;
                                            strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                            rotates: [0i64, 0i64, 0i64];
                                            shape: [case_res_f_res_f_res_140728, case_res_f_res_f_res_140729, case_res_f_res_f_res_140730];
                                            permutation: [0, 1, 2];
                                            monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143727 : ({grids_140681},
                                  [case_res_f_res_f_res_140728][case_res_f_res_f_res_140729][case_res_f_res_f_res_140730]i8 @ ext_mem_173309 ->
                                  {base: [size_140665, size_140666,
                                          size_140667]; contiguous: true;
                                   LMADs: [{offset: 0i64;
                                            strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                            rotates: [0i64, 0i64, 0i64];
                                            shape: [case_res_f_res_f_res_140728, case_res_f_res_f_res_140729, case_res_f_res_f_res_140730];
                                            permutation: [0, 1, 2];
                                            monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143728 : ({grids_140682},
                                  [case_res_f_res_f_res_140728][case_res_f_res_f_res_140729][case_res_f_res_f_res_140730]i8 @ ext_mem_173308 ->
                                  {base: [size_140665, size_140666,
                                          size_140667]; contiguous: true;
                                   LMADs: [{offset: 0i64;
                                            strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                            rotates: [0i64, 0i64, 0i64];
                                            shape: [case_res_f_res_f_res_140728, case_res_f_res_f_res_140729, case_res_f_res_f_res_140730];
                                            permutation: [0, 1, 2];
                                            monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143729 : ({grids_140683},
                                  [case_res_f_res_f_res_140728][case_res_f_res_f_res_140729][case_res_f_res_f_res_140730]i8 @ ext_mem_173307 ->
                                  {base: [size_140665, size_140666,
                                          size_140667]; contiguous: true;
                                   LMADs: [{offset: 0i64;
                                            strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                            rotates: [0i64, 0i64, 0i64];
                                            shape: [case_res_f_res_f_res_140728, case_res_f_res_f_res_140729, case_res_f_res_f_res_140730];
                                            permutation: [0, 1, 2];
                                            monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143730 : ({grids_140684},
                                  [case_res_f_res_f_res_140728][case_res_f_res_f_res_140729][case_res_f_res_f_res_140730]i64 @ ext_mem_173306 ->
                                  {base: [size_140665, size_140666,
                                          size_140667]; contiguous: true;
                                   LMADs: [{offset: 0i64;
                                            strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                            rotates: [0i64, 0i64, 0i64];
                                            shape: [case_res_f_res_f_res_140728, case_res_f_res_f_res_140729, case_res_f_res_f_res_140730];
                                            permutation: [0, 1, 2];
                                            monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143731 : ({grids_140685},
                                  [case_res_f_res_f_res_140728][case_res_f_res_f_res_140729][case_res_f_res_f_res_140730]i64 @ ext_mem_173305 ->
                                  {base: [size_140665, size_140666,
                                          size_140667]; contiguous: true;
                                   LMADs: [{offset: 0i64;
                                            strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                            rotates: [0i64, 0i64, 0i64];
                                            shape: [case_res_f_res_f_res_140728, case_res_f_res_f_res_140729, case_res_f_res_f_res_140730];
                                            permutation: [0, 1, 2];
                                            monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_143732 : ({}, i64),
   case_res_f_res_f_res_143733 : ({}, i64),
   case_res_f_res_f_res_143734 : ({}, i64),
   case_res_f_res_f_res_143735 : ({}, i64),
   case_res_f_res_f_res_143736 : ({steps_140692},
                                  [size_140668]i64 @ ext_mem_173304 ->
                                  {base: [size_140668]; contiguous: true;
                                   LMADs: [{offset: 0i64; strides: [1i64];
                                            rotates: [0i64];
                                            shape: [size_140668];
                                            permutation: [0];
                                            monotonicity: [Inc]}]}),
   case_res_f_res_f_res_143737 : ({}, i32)}
in false branch
In expression of statement
  {ext_173283 : ({}, i64),
   ext_173282 : ({}, i64),
   ext_173281 : ({}, i64),
   ext_173280 : ({}, i64),
   ext_mem_173279 : ({cycle_checks_mem_167155}, mem),
   ext_173278 : ({}, i64),
   ext_173277 : ({}, i64),
   ext_173276 : ({}, i64),
   ext_173275 : ({}, i64),
   ext_mem_173274 : ({cycle_checks_mem_167156}, mem),
   ext_mem_173273 : ({grids_mem_167157}, mem),
   ext_mem_173272 : ({grids_mem_167158}, mem),
   ext_mem_173271 : ({grids_mem_167159}, mem),
   ext_mem_173270 : ({grids_mem_167160}, mem),
   ext_mem_173269 : ({grids_mem_167161}, mem),
   ext_mem_173268 : ({grids_mem_167162}, mem),
   ext_mem_173267 : ({grids_mem_167163}, mem),
   ext_mem_173266 : ({grids_mem_167164}, mem),
   ext_mem_173265 : ({grids_mem_167165}, mem),
   ext_mem_173264 : ({grids_mem_167166}, mem),
   ext_mem_173263 : ({grids_mem_167167}, mem),
   ext_mem_173262 : ({grids_mem_167168}, mem),
   ext_mem_173261 : ({steps_mem_167169}, mem),
   case_res_f_res_f_res_f_res_144337 : ({}, i64),
   case_res_f_res_f_res_f_res_144338 : ({}, i64),
   case_res_f_res_f_res_f_res_144339 : ({}, bool),
   case_res_f_res_f_res_f_res_144340 : ({cycle_checks_140672},
                                        [case_res_f_res_f_res_f_res_144337][case_res_f_res_f_res_f_res_140721][case_res_f_res_f_res_f_res_140722]i8 @ ext_mem_173279 ->
                                        {base: [ext_173282, ext_173281,
                                                ext_173280]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (ext_173280) (ext_173281), ext_173280, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [ext_173283, case_res_f_res_f_res_f_res_140721, case_res_f_res_f_res_f_res_140722];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144341 : ({cycle_checks_140673},
                                        [case_res_f_res_f_res_f_res_144338][case_res_f_res_f_res_f_res_140721][case_res_f_res_f_res_f_res_140722]i8 @ ext_mem_173274 ->
                                        {base: [ext_173277, ext_173276,
                                                ext_173275]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (ext_173275) (ext_173276), ext_173275, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [ext_173278, case_res_f_res_f_res_f_res_140721, case_res_f_res_f_res_f_res_140722];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144342 : ({grids_140674},
                                        [case_res_f_res_f_res_f_res_140723][case_res_f_res_f_res_f_res_140724][case_res_f_res_f_res_f_res_140725]unit @ ext_mem_173273 ->
                                        {base: [size_140665, size_140666,
                                                size_140667]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_f_res_f_res_f_res_140723, case_res_f_res_f_res_f_res_140724, case_res_f_res_f_res_f_res_140725];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144343 : ({grids_140675},
                                        [case_res_f_res_f_res_f_res_140723][case_res_f_res_f_res_f_res_140724][case_res_f_res_f_res_f_res_140725]bool @ ext_mem_173272 ->
                                        {base: [size_140665, size_140666,
                                                size_140667]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_f_res_f_res_f_res_140723, case_res_f_res_f_res_f_res_140724, case_res_f_res_f_res_f_res_140725];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144344 : ({grids_140676},
                                        [case_res_f_res_f_res_f_res_140723][case_res_f_res_f_res_f_res_140724][case_res_f_res_f_res_f_res_140725]bool @ ext_mem_173271 ->
                                        {base: [size_140665, size_140666,
                                                size_140667]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_f_res_f_res_f_res_140723, case_res_f_res_f_res_f_res_140724, case_res_f_res_f_res_f_res_140725];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144345 : ({grids_140677},
                                        [case_res_f_res_f_res_f_res_140723][case_res_f_res_f_res_f_res_140724][case_res_f_res_f_res_f_res_140725]bool @ ext_mem_173270 ->
                                        {base: [size_140665, size_140666,
                                                size_140667]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_f_res_f_res_f_res_140723, case_res_f_res_f_res_f_res_140724, case_res_f_res_f_res_f_res_140725];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144346 : ({grids_140678},
                                        [case_res_f_res_f_res_f_res_140723][case_res_f_res_f_res_f_res_140724][case_res_f_res_f_res_f_res_140725]bool @ ext_mem_173269 ->
                                        {base: [size_140665, size_140666,
                                                size_140667]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_f_res_f_res_f_res_140723, case_res_f_res_f_res_f_res_140724, case_res_f_res_f_res_f_res_140725];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144347 : ({grids_140679},
                                        [case_res_f_res_f_res_f_res_140723][case_res_f_res_f_res_f_res_140724][case_res_f_res_f_res_f_res_140725]i32 @ ext_mem_173268 ->
                                        {base: [size_140665, size_140666,
                                                size_140667]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_f_res_f_res_f_res_140723, case_res_f_res_f_res_f_res_140724, case_res_f_res_f_res_f_res_140725];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144348 : ({grids_140680},
                                        [case_res_f_res_f_res_f_res_140723][case_res_f_res_f_res_f_res_140724][case_res_f_res_f_res_f_res_140725]i8 @ ext_mem_173267 ->
                                        {base: [size_140665, size_140666,
                                                size_140667]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_f_res_f_res_f_res_140723, case_res_f_res_f_res_f_res_140724, case_res_f_res_f_res_f_res_140725];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144349 : ({grids_140681},
                                        [case_res_f_res_f_res_f_res_140723][case_res_f_res_f_res_f_res_140724][case_res_f_res_f_res_f_res_140725]i8 @ ext_mem_173266 ->
                                        {base: [size_140665, size_140666,
                                                size_140667]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_f_res_f_res_f_res_140723, case_res_f_res_f_res_f_res_140724, case_res_f_res_f_res_f_res_140725];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144350 : ({grids_140682},
                                        [case_res_f_res_f_res_f_res_140723][case_res_f_res_f_res_f_res_140724][case_res_f_res_f_res_f_res_140725]i8 @ ext_mem_173265 ->
                                        {base: [size_140665, size_140666,
                                                size_140667]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_f_res_f_res_f_res_140723, case_res_f_res_f_res_f_res_140724, case_res_f_res_f_res_f_res_140725];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144351 : ({grids_140683},
                                        [case_res_f_res_f_res_f_res_140723][case_res_f_res_f_res_f_res_140724][case_res_f_res_f_res_f_res_140725]i8 @ ext_mem_173264 ->
                                        {base: [size_140665, size_140666,
                                                size_140667]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_f_res_f_res_f_res_140723, case_res_f_res_f_res_f_res_140724, case_res_f_res_f_res_f_res_140725];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144352 : ({grids_140684},
                                        [case_res_f_res_f_res_f_res_140723][case_res_f_res_f_res_f_res_140724][case_res_f_res_f_res_f_res_140725]i64 @ ext_mem_173263 ->
                                        {base: [size_140665, size_140666,
                                                size_140667]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_f_res_f_res_f_res_140723, case_res_f_res_f_res_f_res_140724, case_res_f_res_f_res_f_res_140725];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144353 : ({grids_140685},
                                        [case_res_f_res_f_res_f_res_140723][case_res_f_res_f_res_f_res_140724][case_res_f_res_f_res_f_res_140725]i64 @ ext_mem_173262 ->
                                        {base: [size_140665, size_140666,
                                                size_140667]; contiguous: true;
                                         LMADs: [{offset: 0i64;
                                                  strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                  rotates: [0i64, 0i64, 0i64];
                                                  shape: [case_res_f_res_f_res_f_res_140723, case_res_f_res_f_res_f_res_140724, case_res_f_res_f_res_f_res_140725];
                                                  permutation: [0, 1, 2];
                                                  monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_144354 : ({}, i64),
   case_res_f_res_f_res_f_res_144355 : ({}, i64),
   case_res_f_res_f_res_f_res_144356 : ({}, i64),
   case_res_f_res_f_res_f_res_144357 : ({steps_140692},
                                        [size_140668]i64 @ ext_mem_173261 ->
                                        {base: [size_140668]; contiguous: true;
                                         LMADs: [{offset: 0i64; strides: [1i64];
                                                  rotates: [0i64];
                                                  shape: [size_140668];
                                                  permutation: [0];
                                                  monotonicity: [Inc]}]}),
   case_res_f_res_f_res_f_res_144358 : ({}, i32)}
in false branch
In expression of statement
  {ext_173260 : ({}, i64),
   ext_173259 : ({}, i64),
   ext_173258 : ({}, i64),
   ext_173257 : ({}, i64),
   ext_mem_173256 : ({cycle_checks_mem_167155}, mem),
   ext_173255 : ({}, i64),
   ext_173254 : ({}, i64),
   ext_173253 : ({}, i64),
   ext_173252 : ({}, i64),
   ext_mem_173251 : ({cycle_checks_mem_167156}, mem),
   ext_mem_173250 : ({grids_mem_167157}, mem),
   ext_mem_173249 : ({grids_mem_167158}, mem),
   ext_mem_173248 : ({grids_mem_167159}, mem),
   ext_mem_173247 : ({grids_mem_167160}, mem),
   ext_mem_173246 : ({grids_mem_167161}, mem),
   ext_mem_173245 : ({grids_mem_167162}, mem),
   ext_mem_173244 : ({grids_mem_167163}, mem),
   ext_mem_173243 : ({grids_mem_167164}, mem),
   ext_mem_173242 : ({grids_mem_167165}, mem),
   ext_mem_173241 : ({grids_mem_167166}, mem),
   ext_mem_173240 : ({grids_mem_167167}, mem),
   ext_mem_173239 : ({grids_mem_167168}, mem),
   ext_mem_173238 : ({steps_mem_167169}, mem),
   case_res_f_res_f_res_f_res_f_res_144374 : ({}, i64),
   case_res_f_res_f_res_f_res_f_res_144375 : ({}, i64),
   case_res_f_res_f_res_f_res_f_res_144376 : ({}, bool),
   case_res_f_res_f_res_f_res_f_res_144377 : ({cycle_checks_140672},
                                              [case_res_f_res_f_res_f_res_f_res_144374][case_res_f_res_f_res_f_res_f_res_140716][case_res_f_res_f_res_f_res_f_res_140717]i8 @ ext_mem_173256 ->
                                              {base: [ext_173259, ext_173258,
                                                      ext_173257];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (ext_173257) (ext_173258), ext_173257, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [ext_173260, case_res_f_res_f_res_f_res_f_res_140716, case_res_f_res_f_res_f_res_f_res_140717];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144378 : ({cycle_checks_140673},
                                              [case_res_f_res_f_res_f_res_f_res_144375][case_res_f_res_f_res_f_res_f_res_140716][case_res_f_res_f_res_f_res_f_res_140717]i8 @ ext_mem_173251 ->
                                              {base: [ext_173254, ext_173253,
                                                      ext_173252];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (ext_173252) (ext_173253), ext_173252, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [ext_173255, case_res_f_res_f_res_f_res_f_res_140716, case_res_f_res_f_res_f_res_f_res_140717];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144379 : ({grids_140674},
                                              [case_res_f_res_f_res_f_res_f_res_140718][case_res_f_res_f_res_f_res_f_res_140719][case_res_f_res_f_res_f_res_f_res_140720]unit @ ext_mem_173250 ->
                                              {base: [size_140665, size_140666,
                                                      size_140667];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_f_res_f_res_f_res_140718, case_res_f_res_f_res_f_res_f_res_140719, case_res_f_res_f_res_f_res_f_res_140720];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144380 : ({grids_140675},
                                              [case_res_f_res_f_res_f_res_f_res_140718][case_res_f_res_f_res_f_res_f_res_140719][case_res_f_res_f_res_f_res_f_res_140720]bool @ ext_mem_173249 ->
                                              {base: [size_140665, size_140666,
                                                      size_140667];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_f_res_f_res_f_res_140718, case_res_f_res_f_res_f_res_f_res_140719, case_res_f_res_f_res_f_res_f_res_140720];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144381 : ({grids_140676},
                                              [case_res_f_res_f_res_f_res_f_res_140718][case_res_f_res_f_res_f_res_f_res_140719][case_res_f_res_f_res_f_res_f_res_140720]bool @ ext_mem_173248 ->
                                              {base: [size_140665, size_140666,
                                                      size_140667];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_f_res_f_res_f_res_140718, case_res_f_res_f_res_f_res_f_res_140719, case_res_f_res_f_res_f_res_f_res_140720];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144382 : ({grids_140677},
                                              [case_res_f_res_f_res_f_res_f_res_140718][case_res_f_res_f_res_f_res_f_res_140719][case_res_f_res_f_res_f_res_f_res_140720]bool @ ext_mem_173247 ->
                                              {base: [size_140665, size_140666,
                                                      size_140667];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_f_res_f_res_f_res_140718, case_res_f_res_f_res_f_res_f_res_140719, case_res_f_res_f_res_f_res_f_res_140720];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144383 : ({grids_140678},
                                              [case_res_f_res_f_res_f_res_f_res_140718][case_res_f_res_f_res_f_res_f_res_140719][case_res_f_res_f_res_f_res_f_res_140720]bool @ ext_mem_173246 ->
                                              {base: [size_140665, size_140666,
                                                      size_140667];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_f_res_f_res_f_res_140718, case_res_f_res_f_res_f_res_f_res_140719, case_res_f_res_f_res_f_res_f_res_140720];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144384 : ({grids_140679},
                                              [case_res_f_res_f_res_f_res_f_res_140718][case_res_f_res_f_res_f_res_f_res_140719][case_res_f_res_f_res_f_res_f_res_140720]i32 @ ext_mem_173245 ->
                                              {base: [size_140665, size_140666,
                                                      size_140667];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_f_res_f_res_f_res_140718, case_res_f_res_f_res_f_res_f_res_140719, case_res_f_res_f_res_f_res_f_res_140720];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144385 : ({grids_140680},
                                              [case_res_f_res_f_res_f_res_f_res_140718][case_res_f_res_f_res_f_res_f_res_140719][case_res_f_res_f_res_f_res_f_res_140720]i8 @ ext_mem_173244 ->
                                              {base: [size_140665, size_140666,
                                                      size_140667];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_f_res_f_res_f_res_140718, case_res_f_res_f_res_f_res_f_res_140719, case_res_f_res_f_res_f_res_f_res_140720];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144386 : ({grids_140681},
                                              [case_res_f_res_f_res_f_res_f_res_140718][case_res_f_res_f_res_f_res_f_res_140719][case_res_f_res_f_res_f_res_f_res_140720]i8 @ ext_mem_173243 ->
                                              {base: [size_140665, size_140666,
                                                      size_140667];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_f_res_f_res_f_res_140718, case_res_f_res_f_res_f_res_f_res_140719, case_res_f_res_f_res_f_res_f_res_140720];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144387 : ({grids_140682},
                                              [case_res_f_res_f_res_f_res_f_res_140718][case_res_f_res_f_res_f_res_f_res_140719][case_res_f_res_f_res_f_res_f_res_140720]i8 @ ext_mem_173242 ->
                                              {base: [size_140665, size_140666,
                                                      size_140667];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_f_res_f_res_f_res_140718, case_res_f_res_f_res_f_res_f_res_140719, case_res_f_res_f_res_f_res_f_res_140720];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144388 : ({grids_140683},
                                              [case_res_f_res_f_res_f_res_f_res_140718][case_res_f_res_f_res_f_res_f_res_140719][case_res_f_res_f_res_f_res_f_res_140720]i8 @ ext_mem_173241 ->
                                              {base: [size_140665, size_140666,
                                                      size_140667];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_f_res_f_res_f_res_140718, case_res_f_res_f_res_f_res_f_res_140719, case_res_f_res_f_res_f_res_f_res_140720];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144389 : ({grids_140684},
                                              [case_res_f_res_f_res_f_res_f_res_140718][case_res_f_res_f_res_f_res_f_res_140719][case_res_f_res_f_res_f_res_f_res_140720]i64 @ ext_mem_173240 ->
                                              {base: [size_140665, size_140666,
                                                      size_140667];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_f_res_f_res_f_res_140718, case_res_f_res_f_res_f_res_f_res_140719, case_res_f_res_f_res_f_res_f_res_140720];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144390 : ({grids_140685},
                                              [case_res_f_res_f_res_f_res_f_res_140718][case_res_f_res_f_res_f_res_f_res_140719][case_res_f_res_f_res_f_res_f_res_140720]i64 @ ext_mem_173239 ->
                                              {base: [size_140665, size_140666,
                                                      size_140667];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                        rotates: [0i64, 0i64, 0i64];
                                                        shape: [case_res_f_res_f_res_f_res_f_res_140718, case_res_f_res_f_res_f_res_f_res_140719, case_res_f_res_f_res_f_res_f_res_140720];
                                                        permutation: [0, 1, 2];
                                                        monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144391 : ({}, i64),
   case_res_f_res_f_res_f_res_f_res_144392 : ({}, i64),
   case_res_f_res_f_res_f_res_f_res_144393 : ({}, i64),
   case_res_f_res_f_res_f_res_f_res_144394 : ({steps_140692},
                                              [size_140668]i64 @ ext_mem_173238 ->
                                              {base: [size_140668];
                                               contiguous: true;
                                               LMADs: [{offset: 0i64;
                                                        strides: [1i64];
                                                        rotates: [0i64];
                                                        shape: [size_140668];
                                                        permutation: [0];
                                                        monotonicity: [Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_144395 : ({}, i32)}
in false branch
In expression of statement
  {ext_173237 : ({}, i64),
   ext_173236 : ({}, i64),
   ext_173235 : ({}, i64),
   ext_173234 : ({}, i64),
   ext_mem_173233 : ({cycle_checks_mem_167155}, mem),
   ext_173232 : ({}, i64),
   ext_173231 : ({}, i64),
   ext_173230 : ({}, i64),
   ext_173229 : ({}, i64),
   ext_mem_173228 : ({cycle_checks_mem_167156}, mem),
   ext_mem_173227 : ({grids_mem_167157}, mem),
   ext_mem_173226 : ({grids_mem_167158}, mem),
   ext_mem_173225 : ({grids_mem_167159}, mem),
   ext_mem_173224 : ({grids_mem_167160}, mem),
   ext_mem_173223 : ({grids_mem_167161}, mem),
   ext_mem_173222 : ({grids_mem_167162}, mem),
   ext_mem_173221 : ({grids_mem_167163}, mem),
   ext_mem_173220 : ({grids_mem_167164}, mem),
   ext_mem_173219 : ({grids_mem_167165}, mem),
   ext_mem_173218 : ({grids_mem_167166}, mem),
   ext_mem_173217 : ({grids_mem_167167}, mem),
   ext_mem_173216 : ({grids_mem_167168}, mem),
   ext_mem_173215 : ({steps_mem_167169}, mem),
   case_res_f_res_f_res_f_res_f_res_f_res_144411 : ({}, i64),
   case_res_f_res_f_res_f_res_f_res_f_res_144412 : ({}, i64),
   case_res_f_res_f_res_f_res_f_res_f_res_144413 : ({}, bool),
   case_res_f_res_f_res_f_res_f_res_f_res_144414 : ({cycle_checks_140672},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_144411][case_res_f_res_f_res_f_res_f_res_f_res_140711][case_res_f_res_f_res_f_res_f_res_f_res_140712]i8 @ ext_mem_173233 ->
                                                    {base: [ext_173236,
                                                            ext_173235,
                                                            ext_173234];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (ext_173234) (ext_173235), ext_173234, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [ext_173237, case_res_f_res_f_res_f_res_f_res_f_res_140711, case_res_f_res_f_res_f_res_f_res_f_res_140712];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144415 : ({cycle_checks_140673},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_144412][case_res_f_res_f_res_f_res_f_res_f_res_140711][case_res_f_res_f_res_f_res_f_res_f_res_140712]i8 @ ext_mem_173228 ->
                                                    {base: [ext_173231,
                                                            ext_173230,
                                                            ext_173229];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (ext_173229) (ext_173230), ext_173229, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [ext_173232, case_res_f_res_f_res_f_res_f_res_f_res_140711, case_res_f_res_f_res_f_res_f_res_f_res_140712];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144416 : ({grids_140674},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_140713][case_res_f_res_f_res_f_res_f_res_f_res_140714][case_res_f_res_f_res_f_res_f_res_f_res_140715]unit @ ext_mem_173227 ->
                                                    {base: [size_140665,
                                                            size_140666,
                                                            size_140667];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [case_res_f_res_f_res_f_res_f_res_f_res_140713, case_res_f_res_f_res_f_res_f_res_f_res_140714, case_res_f_res_f_res_f_res_f_res_f_res_140715];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144417 : ({grids_140675},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_140713][case_res_f_res_f_res_f_res_f_res_f_res_140714][case_res_f_res_f_res_f_res_f_res_f_res_140715]bool @ ext_mem_173226 ->
                                                    {base: [size_140665,
                                                            size_140666,
                                                            size_140667];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [case_res_f_res_f_res_f_res_f_res_f_res_140713, case_res_f_res_f_res_f_res_f_res_f_res_140714, case_res_f_res_f_res_f_res_f_res_f_res_140715];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144418 : ({grids_140676},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_140713][case_res_f_res_f_res_f_res_f_res_f_res_140714][case_res_f_res_f_res_f_res_f_res_f_res_140715]bool @ ext_mem_173225 ->
                                                    {base: [size_140665,
                                                            size_140666,
                                                            size_140667];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [case_res_f_res_f_res_f_res_f_res_f_res_140713, case_res_f_res_f_res_f_res_f_res_f_res_140714, case_res_f_res_f_res_f_res_f_res_f_res_140715];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144419 : ({grids_140677},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_140713][case_res_f_res_f_res_f_res_f_res_f_res_140714][case_res_f_res_f_res_f_res_f_res_f_res_140715]bool @ ext_mem_173224 ->
                                                    {base: [size_140665,
                                                            size_140666,
                                                            size_140667];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [case_res_f_res_f_res_f_res_f_res_f_res_140713, case_res_f_res_f_res_f_res_f_res_f_res_140714, case_res_f_res_f_res_f_res_f_res_f_res_140715];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144420 : ({grids_140678},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_140713][case_res_f_res_f_res_f_res_f_res_f_res_140714][case_res_f_res_f_res_f_res_f_res_f_res_140715]bool @ ext_mem_173223 ->
                                                    {base: [size_140665,
                                                            size_140666,
                                                            size_140667];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [case_res_f_res_f_res_f_res_f_res_f_res_140713, case_res_f_res_f_res_f_res_f_res_f_res_140714, case_res_f_res_f_res_f_res_f_res_f_res_140715];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144421 : ({grids_140679},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_140713][case_res_f_res_f_res_f_res_f_res_f_res_140714][case_res_f_res_f_res_f_res_f_res_f_res_140715]i32 @ ext_mem_173222 ->
                                                    {base: [size_140665,
                                                            size_140666,
                                                            size_140667];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [case_res_f_res_f_res_f_res_f_res_f_res_140713, case_res_f_res_f_res_f_res_f_res_f_res_140714, case_res_f_res_f_res_f_res_f_res_f_res_140715];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144422 : ({grids_140680},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_140713][case_res_f_res_f_res_f_res_f_res_f_res_140714][case_res_f_res_f_res_f_res_f_res_f_res_140715]i8 @ ext_mem_173221 ->
                                                    {base: [size_140665,
                                                            size_140666,
                                                            size_140667];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [case_res_f_res_f_res_f_res_f_res_f_res_140713, case_res_f_res_f_res_f_res_f_res_f_res_140714, case_res_f_res_f_res_f_res_f_res_f_res_140715];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144423 : ({grids_140681},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_140713][case_res_f_res_f_res_f_res_f_res_f_res_140714][case_res_f_res_f_res_f_res_f_res_f_res_140715]i8 @ ext_mem_173220 ->
                                                    {base: [size_140665,
                                                            size_140666,
                                                            size_140667];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [case_res_f_res_f_res_f_res_f_res_f_res_140713, case_res_f_res_f_res_f_res_f_res_f_res_140714, case_res_f_res_f_res_f_res_f_res_f_res_140715];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144424 : ({grids_140682},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_140713][case_res_f_res_f_res_f_res_f_res_f_res_140714][case_res_f_res_f_res_f_res_f_res_f_res_140715]i8 @ ext_mem_173219 ->
                                                    {base: [size_140665,
                                                            size_140666,
                                                            size_140667];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [case_res_f_res_f_res_f_res_f_res_f_res_140713, case_res_f_res_f_res_f_res_f_res_f_res_140714, case_res_f_res_f_res_f_res_f_res_f_res_140715];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144425 : ({grids_140683},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_140713][case_res_f_res_f_res_f_res_f_res_f_res_140714][case_res_f_res_f_res_f_res_f_res_f_res_140715]i8 @ ext_mem_173218 ->
                                                    {base: [size_140665,
                                                            size_140666,
                                                            size_140667];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [case_res_f_res_f_res_f_res_f_res_f_res_140713, case_res_f_res_f_res_f_res_f_res_f_res_140714, case_res_f_res_f_res_f_res_f_res_f_res_140715];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144426 : ({grids_140684},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_140713][case_res_f_res_f_res_f_res_f_res_f_res_140714][case_res_f_res_f_res_f_res_f_res_f_res_140715]i64 @ ext_mem_173217 ->
                                                    {base: [size_140665,
                                                            size_140666,
                                                            size_140667];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [case_res_f_res_f_res_f_res_f_res_f_res_140713, case_res_f_res_f_res_f_res_f_res_f_res_140714, case_res_f_res_f_res_f_res_f_res_f_res_140715];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144427 : ({grids_140685},
                                                    [case_res_f_res_f_res_f_res_f_res_f_res_140713][case_res_f_res_f_res_f_res_f_res_f_res_140714][case_res_f_res_f_res_f_res_f_res_f_res_140715]i64 @ ext_mem_173216 ->
                                                    {base: [size_140665,
                                                            size_140666,
                                                            size_140667];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [mul_nw64 (size_140667) (size_140666), size_140667, 1i64];
                                                              rotates: [0i64, 0i64, 0i64];
                                                              shape: [case_res_f_res_f_res_f_res_f_res_f_res_140713, case_res_f_res_f_res_f_res_f_res_f_res_140714, case_res_f_res_f_res_f_res_f_res_f_res_140715];
                                                              permutation: [0, 1, 2];
                                                              monotonicity: [Inc, Inc, Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144428 : ({}, i64),
   case_res_f_res_f_res_f_res_f_res_f_res_144429 : ({}, i64),
   case_res_f_res_f_res_f_res_f_res_f_res_144430 : ({}, i64),
   case_res_f_res_f_res_f_res_f_res_f_res_144431 : ({steps_140692},
                                                    [size_140668]i64 @ ext_mem_173215 ->
                                                    {base: [size_140668];
                                                     contiguous: true;
                                                     LMADs: [{offset: 0i64;
                                                              strides: [1i64];
                                                              rotates: [0i64];
                                                              shape: [size_140668];
                                                              permutation: [0];
                                                              monotonicity: [Inc]}]}),
   case_res_f_res_f_res_f_res_f_res_f_res_144432 : ({}, i32)}
in false branch
When checking pattern element case_res_f_res_f_res_f_res_f_res_f_res_f_res_144453
in index function {base: [ext_mem_173214, case_res_f_res_f_res_f_res_f_res_f_res_f_res_140706,
        case_res_f_res_f_res_f_res_f_res_f_res_f_res_140707]; contiguous: true;
 LMADs: [{offset: 0i64;
          strides: [mul_nw64 (case_res_f_res_f_res_f_res_f_res_f_res_f_res_140707) (case_res_f_res_f_res_f_res_f_res_f_res_f_res_140706), case_res_f_res_f_res_f_res_f_res_f_res_f_res_140707, 1i64];
          rotates: [0i64, 0i64, 0i64];
          shape: [ext_mem_173214, case_res_f_res_f_res_f_res_f_res_f_res_f_res_140706, case_res_f_res_f_res_f_res_f_res_f_res_f_res_140707];
          permutation: [0, 1, 2]; monotonicity: [Inc, Inc, Inc]}]}
in PrimExp ext_mem_173214
Type of expression
  ext_mem_173214
must be one of i64, but is mem.
make[1]: *** [../lib/github.com/diku-dk/lys/common.mk:34: explorer_wrapper.c] Error 2
make: *** [Makefile:7: explorer/explorer] Error 2
athas commented 2 years ago

Looks like a bug in the construction of index functions for If expressions (anti-unification or whatever it is). The index function makes no sense.

athas commented 2 years ago

I think this program fails for the same root reason, but is much smaller (the unsafe is just to shrink it further):

let main (b: bool) (i: i64) (xs: []i64) =
  #[unsafe]
  if b then xs[0::2] else iota xs[i+1]