128 lines · plain
1// RUN: yaml2obj %S/inputs/div.yaml.wasm -o - | mlir-translate --import-wasm | FileCheck %s2 3/* Source code used to create this test:4(module5 (func (export "div_u_i32") (result i32)6 i32.const 107 i32.const 28 i32.div_u9 )10 11 (func (export "div_u_i32_zero") (result i32)12 i32.const 1013 i32.const 014 i32.div_u15 )16 17 (func (export "div_s_i32") (result i32)18 i32.const 1019 i32.const 220 i32.div_s21 )22 23 (func (export "div_s_i32_zero") (result i32)24 i32.const 1025 i32.const 026 i32.div_s27 )28 29 (func (export "div_u_i64") (result i64)30 i64.const 1031 i64.const 232 i64.div_u33 )34 35 ;; explode36 (func (export "div_u_i64_zero") (result i64)37 i64.const 1038 i64.const 039 i64.div_u40 )41 42 (func (export "div_s_i64") (result i64)43 i64.const 1044 i64.const 245 i64.div_s46 )47 48 ;; explode49 (func (export "div_s_i64_zero") (result i64)50 i64.const 1051 i64.const 052 i64.div_s53 )54 55 (func (export "div_f32") (result f32)56 f32.const 1057 f32.const 258 f32.div59 )60 61 (func (export "div_f64") (result f64)62 f64.const 1063 f64.const 264 f64.div65 )66)67*/68 69// CHECK-LABEL: wasmssa.func exported @div_u_i32() -> i32 {70// CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i3271// CHECK: %[[VAL_1:.*]] = wasmssa.const 2 : i3272// CHECK: %[[VAL_2:.*]] = wasmssa.div_ui %[[VAL_0]] %[[VAL_1]] : i3273// CHECK: wasmssa.return %[[VAL_2]] : i3274 75// CHECK-LABEL: wasmssa.func exported @div_u_i32_zero() -> i32 {76// CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i3277// CHECK: %[[VAL_1:.*]] = wasmssa.const 0 : i3278// CHECK: %[[VAL_2:.*]] = wasmssa.div_ui %[[VAL_0]] %[[VAL_1]] : i3279// CHECK: wasmssa.return %[[VAL_2]] : i3280 81// CHECK-LABEL: wasmssa.func exported @div_s_i32() -> i32 {82// CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i3283// CHECK: %[[VAL_1:.*]] = wasmssa.const 2 : i3284// CHECK: %[[VAL_2:.*]] = wasmssa.div_si %[[VAL_0]] %[[VAL_1]] : i3285// CHECK: wasmssa.return %[[VAL_2]] : i3286 87// CHECK-LABEL: wasmssa.func exported @div_s_i32_zero() -> i32 {88// CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i3289// CHECK: %[[VAL_1:.*]] = wasmssa.const 0 : i3290// CHECK: %[[VAL_2:.*]] = wasmssa.div_si %[[VAL_0]] %[[VAL_1]] : i3291// CHECK: wasmssa.return %[[VAL_2]] : i3292 93// CHECK-LABEL: wasmssa.func exported @div_u_i64() -> i64 {94// CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i6495// CHECK: %[[VAL_1:.*]] = wasmssa.const 2 : i6496// CHECK: %[[VAL_2:.*]] = wasmssa.div_ui %[[VAL_0]] %[[VAL_1]] : i6497// CHECK: wasmssa.return %[[VAL_2]] : i6498 99// CHECK-LABEL: wasmssa.func exported @div_u_i64_zero() -> i64 {100// CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i64101// CHECK: %[[VAL_1:.*]] = wasmssa.const 0 : i64102// CHECK: %[[VAL_2:.*]] = wasmssa.div_ui %[[VAL_0]] %[[VAL_1]] : i64103// CHECK: wasmssa.return %[[VAL_2]] : i64104 105// CHECK-LABEL: wasmssa.func exported @div_s_i64() -> i64 {106// CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i64107// CHECK: %[[VAL_1:.*]] = wasmssa.const 2 : i64108// CHECK: %[[VAL_2:.*]] = wasmssa.div_si %[[VAL_0]] %[[VAL_1]] : i64109// CHECK: wasmssa.return %[[VAL_2]] : i64110 111// CHECK-LABEL: wasmssa.func exported @div_s_i64_zero() -> i64 {112// CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i64113// CHECK: %[[VAL_1:.*]] = wasmssa.const 0 : i64114// CHECK: %[[VAL_2:.*]] = wasmssa.div_si %[[VAL_0]] %[[VAL_1]] : i64115// CHECK: wasmssa.return %[[VAL_2]] : i64116 117// CHECK-LABEL: wasmssa.func exported @div_f32() -> f32 {118// CHECK: %[[VAL_0:.*]] = wasmssa.const 1.000000e+01 : f32119// CHECK: %[[VAL_1:.*]] = wasmssa.const 2.000000e+00 : f32120// CHECK: %[[VAL_2:.*]] = wasmssa.div %[[VAL_0]] %[[VAL_1]] : f32121// CHECK: wasmssa.return %[[VAL_2]] : f32122 123// CHECK-LABEL: wasmssa.func exported @div_f64() -> f64 {124// CHECK: %[[VAL_0:.*]] = wasmssa.const 1.000000e+01 : f64125// CHECK: %[[VAL_1:.*]] = wasmssa.const 2.000000e+00 : f64126// CHECK: %[[VAL_2:.*]] = wasmssa.div %[[VAL_0]] %[[VAL_1]] : f64127// CHECK: wasmssa.return %[[VAL_2]] : f64128