File: loop10.fir

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (25 lines) | stat: -rw-r--r-- 958 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// RUN: tco %s | FileCheck %s

// CHECK: @x({{.*}} %[[ADDR:.*]])
func.func @x(%addr : !fir.ref<!fir.array<10x10xi32>>) -> index {
  %c0 = arith.constant 0 : index
  %c10 = arith.constant 10 : index
  %c1 = arith.constant 1 : index
  // CHECK-DAG: %[[R:.*]] = phi i64 {{.*}} [ 0,
  // CHECK-DAG: %[[ROW:.*]] = phi i64 {{.*}} [ 11,
  // CHECK: icmp sgt i64 %[[ROW]], 0
  fir.do_loop %iv = %c0 to %c10 step %c1 {
    // CHECK-DAG: %[[C:.*]] = phi i64 {{.*}} [ 0,
    // CHECK-DAG: %[[COL:.*]] = phi i64 {{.*}} [ 11,
    // CHECK: icmp sgt i64 %[[COL]], 0
    fir.do_loop %jv = %c0 to %c10 step %c1 {
      // CHECK: getelementptr {{.*}} %[[ADDR]], i32 0, i64 %[[R]], i64 %[[C]]
      %ptr = fir.coordinate_of %addr, %jv, %iv : (!fir.ref<!fir.array<10x10xi32>>, index, index) -> !fir.ref<i32>
      %c22 = arith.constant 22 : i32
      // CHECK: store i32 22,
      fir.store %c22 to %ptr : !fir.ref<i32>
    }
  }
  // CHECK: ret i64 10
  return %c10 : index
}