blob: 91e3a6a0f6fc84e1b386311423235a90f7ade38c [file] [log] [blame] [edit]
// RUN: yaml2obj %S/inputs/comparison_ops.yaml.wasm -o - | mlir-translate --import-wasm | FileCheck %s
/* Source code used to create this test:
(module
(func $lt_si32 (result i32)
i32.const 12
i32.const 50
i32.lt_s
)
(func $le_si32 (result i32)
i32.const 12
i32.const 50
i32.le_s
)
(func $lt_ui32 (result i32)
i32.const 12
i32.const 50
i32.lt_u
)
(func $le_ui32 (result i32)
i32.const 12
i32.const 50
i32.le_u
)
(func $gt_si32 (result i32)
i32.const 12
i32.const 50
i32.gt_s
)
(func $gt_ui32 (result i32)
i32.const 12
i32.const 50
i32.gt_u
)
(func $ge_si32 (result i32)
i32.const 12
i32.const 50
i32.ge_s
)
(func $ge_ui32 (result i32)
i32.const 12
i32.const 50
i32.ge_u
)
(func $lt_si64 (result i32)
i64.const 12
i64.const 50
i64.lt_s
)
(func $le_si64 (result i32)
i64.const 12
i64.const 50
i64.le_s
)
(func $lt_ui64 (result i32)
i64.const 12
i64.const 50
i64.lt_u
)
(func $le_ui64 (result i32)
i64.const 12
i64.const 50
i64.le_u
)
(func $gt_si64 (result i32)
i64.const 12
i64.const 50
i64.gt_s
)
(func $gt_ui64 (result i32)
i64.const 12
i64.const 50
i64.gt_u
)
(func $ge_si64 (result i32)
i64.const 12
i64.const 50
i64.ge_s
)
(func $ge_ui64 (result i32)
i64.const 12
i64.const 50
i64.ge_u
)
(func $lt_f32 (result i32)
f32.const 5
f32.const 14
f32.lt
)
(func $le_f32 (result i32)
f32.const 5
f32.const 14
f32.le
)
(func $gt_f32 (result i32)
f32.const 5
f32.const 14
f32.gt
)
(func $ge_f32 (result i32)
f32.const 5
f32.const 14
f32.ge
)
(func $lt_f64 (result i32)
f64.const 5
f64.const 14
f64.lt
)
(func $le_f64 (result i32)
f64.const 5
f64.const 14
f64.le
)
(func $gt_f64 (result i32)
f64.const 5
f64.const 14
f64.gt
)
(func $ge_f64 (result i32)
f64.const 5
f64.const 14
f64.ge
)
)
*/
// CHECK-LABEL: wasmssa.func @func_0() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32
// CHECK: %[[VAL_2:.*]] = wasmssa.lt_si %[[VAL_0]] %[[VAL_1]] : i32 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_1() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32
// CHECK: %[[VAL_2:.*]] = wasmssa.le_si %[[VAL_0]] %[[VAL_1]] : i32 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_2() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32
// CHECK: %[[VAL_2:.*]] = wasmssa.lt_ui %[[VAL_0]] %[[VAL_1]] : i32 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_3() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32
// CHECK: %[[VAL_2:.*]] = wasmssa.le_ui %[[VAL_0]] %[[VAL_1]] : i32 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_4() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32
// CHECK: %[[VAL_2:.*]] = wasmssa.gt_si %[[VAL_0]] %[[VAL_1]] : i32 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_5() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32
// CHECK: %[[VAL_2:.*]] = wasmssa.gt_ui %[[VAL_0]] %[[VAL_1]] : i32 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_6() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32
// CHECK: %[[VAL_2:.*]] = wasmssa.ge_si %[[VAL_0]] %[[VAL_1]] : i32 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_7() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32
// CHECK: %[[VAL_2:.*]] = wasmssa.ge_ui %[[VAL_0]] %[[VAL_1]] : i32 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_8() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64
// CHECK: %[[VAL_2:.*]] = wasmssa.lt_si %[[VAL_0]] %[[VAL_1]] : i64 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_9() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64
// CHECK: %[[VAL_2:.*]] = wasmssa.le_si %[[VAL_0]] %[[VAL_1]] : i64 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_10() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64
// CHECK: %[[VAL_2:.*]] = wasmssa.lt_ui %[[VAL_0]] %[[VAL_1]] : i64 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_11() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64
// CHECK: %[[VAL_2:.*]] = wasmssa.le_ui %[[VAL_0]] %[[VAL_1]] : i64 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_12() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64
// CHECK: %[[VAL_2:.*]] = wasmssa.gt_si %[[VAL_0]] %[[VAL_1]] : i64 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_13() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64
// CHECK: %[[VAL_2:.*]] = wasmssa.gt_ui %[[VAL_0]] %[[VAL_1]] : i64 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_14() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64
// CHECK: %[[VAL_2:.*]] = wasmssa.ge_si %[[VAL_0]] %[[VAL_1]] : i64 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_15() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64
// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64
// CHECK: %[[VAL_2:.*]] = wasmssa.ge_ui %[[VAL_0]] %[[VAL_1]] : i64 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_16() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f32
// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f32
// CHECK: %[[VAL_2:.*]] = wasmssa.lt %[[VAL_0]] %[[VAL_1]] : f32 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_17() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f32
// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f32
// CHECK: %[[VAL_2:.*]] = wasmssa.le %[[VAL_0]] %[[VAL_1]] : f32 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_18() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f32
// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f32
// CHECK: %[[VAL_2:.*]] = wasmssa.gt %[[VAL_0]] %[[VAL_1]] : f32 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_19() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f32
// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f32
// CHECK: %[[VAL_2:.*]] = wasmssa.ge %[[VAL_0]] %[[VAL_1]] : f32 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_20() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f64
// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f64
// CHECK: %[[VAL_2:.*]] = wasmssa.lt %[[VAL_0]] %[[VAL_1]] : f64 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_21() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f64
// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f64
// CHECK: %[[VAL_2:.*]] = wasmssa.le %[[VAL_0]] %[[VAL_1]] : f64 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_22() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f64
// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f64
// CHECK: %[[VAL_2:.*]] = wasmssa.gt %[[VAL_0]] %[[VAL_1]] : f64 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32
// CHECK-LABEL: wasmssa.func @func_23() -> i32 {
// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f64
// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f64
// CHECK: %[[VAL_2:.*]] = wasmssa.ge %[[VAL_0]] %[[VAL_1]] : f64 -> i32
// CHECK: wasmssa.return %[[VAL_2]] : i32