brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 809febd Raw
58 lines · plain
1// RUN: mlir-opt %s -wrap-emitc-func-in-class -split-input-file | FileCheck %s2 3emitc.func @foo(%arg0 : !emitc.array<1xf32>) {4  emitc.call_opaque "bar" (%arg0) : (!emitc.array<1xf32>) -> ()5  emitc.return6}7 8// CHECK: module {9// CHECK:   emitc.class @fooClass {10// CHECK:     emitc.field @fieldName0 : !emitc.array<1xf32>11// CHECK:     emitc.func @execute() {12// CHECK:       %0 = get_field @fieldName0 : !emitc.array<1xf32>13// CHECK:       call_opaque "bar"(%0) : (!emitc.array<1xf32>) -> ()14// CHECK:       return15// CHECK:     }16// CHECK:   }17// CHECK: }18 19// -----20 21module attributes { } {22  emitc.func @model(%arg0: !emitc.array<1xf32> {emitc.name_hint = "another_feature"},23   %arg1: !emitc.array<1xf32> {emitc.name_hint = "some_feature"},24   %arg2: !emitc.array<1xf32> {emitc.name_hint = "output_0"}) attributes { } {25    %0 = "emitc.constant"() <{value = 0 : index}> : () -> !emitc.size_t26    %1 = subscript %arg1[%0] : (!emitc.array<1xf32>, !emitc.size_t) -> !emitc.lvalue<f32>27    %2 = load %1 : <f32>28    %3 = subscript %arg0[%0] : (!emitc.array<1xf32>, !emitc.size_t) -> !emitc.lvalue<f32>29    %4 = load %3 : <f32>30    %5 = add %2, %4 : (f32, f32) -> f3231    %6 = subscript %arg2[%0] : (!emitc.array<1xf32>, !emitc.size_t) -> !emitc.lvalue<f32>32    assign %5 : f32 to %6 : <f32>33    return34  }35}36 37// CHECK: module {38// CHECK:   emitc.class @modelClass {39// CHECK:     emitc.field @fieldName0 : !emitc.array<1xf32> {emitc.name_hint = "another_feature"}40// CHECK:     emitc.field @fieldName1 : !emitc.array<1xf32>  {emitc.name_hint = "some_feature"}41// CHECK:     emitc.field @fieldName2 : !emitc.array<1xf32>  {emitc.name_hint = "output_0"}42// CHECK:     emitc.func @execute() {43// CHECK:       get_field @fieldName0 : !emitc.array<1xf32>44// CHECK:       get_field @fieldName1 : !emitc.array<1xf32>45// CHECK:       get_field @fieldName2 : !emitc.array<1xf32>46// CHECK:       "emitc.constant"() <{value = 0 : index}> : () -> !emitc.size_t47// CHECK:       subscript {{.*}}[{{.*}}] : (!emitc.array<1xf32>, !emitc.size_t) -> !emitc.lvalue<f32>48// CHECK:       load {{.*}} : <f32>49// CHECK:       subscript {{.*}}[{{.*}}] : (!emitc.array<1xf32>, !emitc.size_t) -> !emitc.lvalue<f32>50// CHECK:       load {{.*}} : <f32>51// CHECK:       add {{.*}}, {{.*}} : (f32, f32) -> f3252// CHECK:       subscript {{.*}}[{{.*}}] : (!emitc.array<1xf32>, !emitc.size_t) -> !emitc.lvalue<f32>53// CHECK:       assign {{.*}} : f32 to {{.*}} : <f32>54// CHECK:       return55// CHECK:     }56// CHECK:   }57// CHECK: }58