# loki.transformations.tests.test_transform_loop

Functions

`test_transform_loop_fission_collapse`(...) |
`test_transform_loop_fission_multiple`(...) |
`test_transform_loop_fission_multiple_promote`(...) |
`test_transform_loop_fission_nested`(tmp_path, ...) |
`test_transform_loop_fission_nested_promote`(...) |
`test_transform_loop_fission_promote`(...) |
`test_transform_loop_fission_promote_array`(...) |
`test_transform_loop_fission_promote_conflicting_lengths`(...) |
`test_transform_loop_fission_promote_multiple`(...) |
`test_transform_loop_fission_promote_multiple_read_after_write`(...) |
`test_transform_loop_fission_promote_read_after_write`(...) |
`test_transform_loop_fission_single`(tmp_path, ...) |
`test_transform_loop_fuse_alignment`(tmp_path, ...) |
`test_transform_loop_fuse_collapse`(tmp_path, ...) |
`test_transform_loop_fuse_collapse_nonmatching`(...) |
`test_transform_loop_fuse_collapse_range`(...) |
`test_transform_loop_fuse_failures`(frontend) | Test that loop-fusion fails for known mistakes.
`test_transform_loop_fuse_groups`(tmp_path, ...) | Apply loop fusion for multiple loop fusion groups.
`test_transform_loop_fuse_matching`(tmp_path, ...) | Apply loop fusion for two loops with matching iteration spaces.
`test_transform_loop_fuse_nonmatching_lower`(...) |
`test_transform_loop_fuse_nonmatching_lower_annotated`(...) |
`test_transform_loop_fuse_nonmatching_upper`(...) |
`test_transform_loop_fuse_ordering`(frontend, ...) | Apply loop fusion for two loops with matching iteration spaces.
`test_transform_loop_fuse_subranges`(tmp_path, ...) | Apply loop fusion with annotated range for loops with non-matching iteration spaces.
`test_transform_loop_fusion_fission`(tmp_path, ...) |
`test_transform_loop_interchange`(tmp_path, ...) | Apply loop interchange for three loops with specified order.
`test_transform_loop_interchange_plain`(...) | Apply loop interchange for two loops without further arguments.
`test_transform_loop_interchange_project`(...) | Apply loop interchange for two loops with bounds projection.
`test_transform_loop_transformation`(frontend, ...) |
`test_transform_loop_unroll`(tmp_path, frontend) |
`test_transform_loop_unroll_before_fuse`(frontend) |
`test_transform_loop_unroll_nested`(tmp_path, ...) |
`test_transform_loop_unroll_nested_counters`(...) |
`test_transform_loop_unroll_nested_neighbours`(...) |
`test_transform_loop_unroll_nested_restricted_depth`(...) |
`test_transform_loop_unroll_nested_restricted_depth_unrollable`(...) |
`test_transform_loop_unroll_non_literal_range`(...) |
`test_transform_loop_unroll_step`(tmp_path, ...) |

test_transform_loop_interchange_plain(tmp_path, frontend)

  Apply loop interchange for two loops without further arguments.

test_transform_loop_interchange(tmp_path, frontend)

  Apply loop interchange for three loops with specified order.

test_transform_loop_interchange_project(tmp_path, frontend)

  Apply loop interchange for two loops with bounds projection.

test_transform_loop_fuse_ordering(frontend, insert_loc)

  Apply loop fusion for two loops with matching iteration spaces.

test_transform_loop_fuse_matching(tmp_path, frontend)

  Apply loop fusion for two loops with matching iteration spaces.

test_transform_loop_fuse_subranges(tmp_path, frontend)

  Apply loop fusion with annotated range for loops with non-matching iteration spaces.

test_transform_loop_fuse_groups(tmp_path, frontend)

  Apply loop fusion for multiple loop fusion groups.

test_transform_loop_fuse_failures(frontend)

  Test that loop-fusion fails for known mistakes.

test_transform_loop_fuse_alignment(tmp_path, frontend)

test_transform_loop_fuse_nonmatching_lower(tmp_path, frontend)

test_transform_loop_fuse_nonmatching_lower_annotated(tmp_path, frontend)

test_transform_loop_fuse_nonmatching_upper(tmp_path, frontend)

test_transform_loop_fuse_collapse(tmp_path, frontend)

test_transform_loop_fuse_collapse_nonmatching(tmp_path, frontend)

test_transform_loop_fuse_collapse_range(tmp_path, frontend)

test_transform_loop_fission_single(tmp_path, frontend)

test_transform_loop_fission_nested(tmp_path, frontend)

test_transform_loop_fission_nested_promote(tmp_path, frontend)

test_transform_loop_fission_collapse(tmp_path, frontend)

test_transform_loop_fission_multiple(tmp_path, frontend)

test_transform_loop_fission_promote(tmp_path, frontend)

test_transform_loop_fission_promote_conflicting_lengths(tmp_path, frontend)

test_transform_loop_fission_promote_array(tmp_path, frontend)

test_transform_loop_fission_promote_multiple(tmp_path, frontend)

test_transform_loop_fission_multiple_promote(tmp_path, frontend)

test_transform_loop_fission_promote_read_after_write(tmp_path, frontend)

test_transform_loop_fission_promote_multiple_read_after_write(tmp_path, frontend)

test_transform_loop_fusion_fission(tmp_path, frontend)

test_transform_loop_unroll(tmp_path, frontend)

test_transform_loop_unroll_step(tmp_path, frontend)

test_transform_loop_unroll_non_literal_range(tmp_path, frontend)

test_transform_loop_unroll_nested(tmp_path, frontend)

test_transform_loop_unroll_nested_restricted_depth(tmp_path, frontend)

test_transform_loop_unroll_nested_restricted_depth_unrollable(tmp_path, frontend)

test_transform_loop_unroll_nested_counters(tmp_path, frontend)

test_transform_loop_unroll_nested_neighbours(tmp_path, frontend)

test_transform_loop_transformation(frontend, loop_interchange, loop_fusion, loop_fission, loop_unroll)

test_transform_loop_unroll_before_fuse(frontend)