11// RUN: mlir-neura-opt \
22// RUN: --assign-accelerator \
3- // RUN: --lower-llvm-to-neura
4- // RN : --transform-ctrl-to-data-flow \
5- // RN : %s | FileCheck %s
3+ // RUN: --lower-llvm-to-neura \
4+ // RUN : --transform-ctrl-to-data-flow \
5+ // RUN : %s | FileCheck %s
66
77func.func @complex_test (%in: i64 ) -> f32 {
88 %c0 = llvm.mlir.constant (0 : i64 ) : i64
@@ -30,15 +30,25 @@ func.func @complex_test(%in: i64) -> f32 {
3030}
3131
3232// CHECK: func.func @complex_test(%arg0: i64) -> f32 attributes {accelerator = "neura"} {
33- // CHECK-NEXT: %0 = "neura.constant"() <{value = 0 : i64}> : () -> i64
34- // CHECK-NEXT: %1 = "neura.constant"() <{value = 1.000000e+00 : f32}> : () -> f32
35- // CHECK-NEXT: %2 = "neura.constant"() <{value = 2.000000e+00 : f32}> : () -> f32
36- // CHECK-NEXT: %3 = "neura.constant"() <{value = 3.000000e+00 : f32}> : () -> f32
37- // CHECK-NEXT: %4 = "neura.constant"() <{value = 4.000000e+00 : f32}> : () -> f32
38- // CHECK-NEXT: %5 = "neura.icmp"(%arg0, %0) <{cmpType = "eq"}> : (i64, i64) -> i1
39- // CHECK-NEXT: %6 = "neura.not"(%5) : (i1) -> i1
40- // CHECK-NEXT: %7 = "neura.fmul"(%3, %4, %5) : (f32, f32, i1) -> f32
41- // CHECK-NEXT: %8 = "neura.fadd"(%1, %2, %6) : (f32, f32, i1) -> f32
42- // CHECK-NEXT: %9 = "neura.sel"(%7, %8, %5) : (f32, f32, i1) -> f32
43- // CHECK-NEXT: return %9 : f32
33+ // CHECK-NEXT: %0 = "neura.constant"() <{predicate = true, value = 0 : i64}> : () -> i64
34+ // CHECK-NEXT: %1 = "neura.constant"() <{predicate = true, value = 1.000000e+00 : f32}> : () -> f32
35+ // CHECK-NEXT: %2 = "neura.constant"() <{predicate = true, value = 2.000000e+00 : f32}> : () -> f32
36+ // CHECK-NEXT: %3 = "neura.constant"() <{predicate = true, value = 3.000000e+00 : f32}> : () -> f32
37+ // CHECK-NEXT: %4 = "neura.constant"() <{predicate = true, value = 4.000000e+00 : f32}> : () -> f32
38+ // CHECK-NEXT: %5 = "neura.icmp"(%arg0, %0) <{cmpType = "eq"}> : (i64, i64) -> i1
39+ // CHECK-NEXT: %6 = "neura.not"(%5) : (i1) -> i1
40+ // CHECK-NEXT: %7 = neura.grant_predicate %1, %6 : f32, i1 -> f32
41+ // CHECK-NEXT: %8 = neura.reserve : f32
42+ // CHECK-NEXT: %9 = "neura.phi"(%8, %7) : (f32, f32) -> f32
43+ // CHECK-NEXT: %10 = "neura.fcmp"(%9, %2) <{cmpType = "olt"}> : (f32, f32) -> i1
44+ // CHECK-NEXT: %11 = neura.grant_predicate %9, %10 : f32, i1 -> f32
45+ // CHECK-NEXT: %12 = "neura.not"(%10) : (i1) -> i1
46+ // CHECK-NEXT: %13 = neura.grant_predicate %9, %12 : f32, i1 -> f32
47+ // CHECK-NEXT: %14 = "neura.fadd"(%11, %1) : (f32, f32) -> f32
48+ // CHECK-NEXT: neura.ctrl_mov %14 -> %8 : f32 f32
49+ // CHECK-NEXT: %15 = neura.grant_predicate %3, %5 : f32, i1 -> f32
50+ // CHECK-NEXT: %16 = neura.grant_predicate %4, %5 : f32, i1 -> f32
51+ // CHECK-NEXT: %17 = "neura.fmul"(%15, %16) : (f32, f32) -> f32
52+ // CHECK-NEXT: %18 = "neura.phi"(%13, %17) : (f32, f32) -> f32
53+ // CHECK-NEXT: "neura.return"(%18) : (f32) -> ()
4454// CHECK-NEXT: }
0 commit comments