270 lines · plain
1// RUN: yaml2obj %S/inputs/comparison_ops.yaml.wasm -o - | mlir-translate --import-wasm | FileCheck %s2/* Source code used to create this test:3(module4 (func $lt_si32 (result i32)5 i32.const 126 i32.const 507 i32.lt_s8 )9 (func $le_si32 (result i32)10 i32.const 1211 i32.const 5012 i32.le_s13 )14 (func $lt_ui32 (result i32)15 i32.const 1216 i32.const 5017 i32.lt_u18 )19 (func $le_ui32 (result i32)20 i32.const 1221 i32.const 5022 i32.le_u23 )24 (func $gt_si32 (result i32)25 i32.const 1226 i32.const 5027 i32.gt_s28 )29 (func $gt_ui32 (result i32)30 i32.const 1231 i32.const 5032 i32.gt_u33 )34 (func $ge_si32 (result i32)35 i32.const 1236 i32.const 5037 i32.ge_s38 )39 (func $ge_ui32 (result i32)40 i32.const 1241 i32.const 5042 i32.ge_u43 )44 (func $lt_si64 (result i32)45 i64.const 1246 i64.const 5047 i64.lt_s48 )49 (func $le_si64 (result i32)50 i64.const 1251 i64.const 5052 i64.le_s53 )54 (func $lt_ui64 (result i32)55 i64.const 1256 i64.const 5057 i64.lt_u58 )59 (func $le_ui64 (result i32)60 i64.const 1261 i64.const 5062 i64.le_u63 )64 (func $gt_si64 (result i32)65 i64.const 1266 i64.const 5067 i64.gt_s68 )69 (func $gt_ui64 (result i32)70 i64.const 1271 i64.const 5072 i64.gt_u73 )74 (func $ge_si64 (result i32)75 i64.const 1276 i64.const 5077 i64.ge_s78 )79 (func $ge_ui64 (result i32)80 i64.const 1281 i64.const 5082 i64.ge_u83 )84 (func $lt_f32 (result i32)85 f32.const 586 f32.const 1487 f32.lt88 )89 (func $le_f32 (result i32)90 f32.const 591 f32.const 1492 f32.le93 )94 (func $gt_f32 (result i32)95 f32.const 596 f32.const 1497 f32.gt98 )99 (func $ge_f32 (result i32)100 f32.const 5101 f32.const 14102 f32.ge103 )104 (func $lt_f64 (result i32)105 f64.const 5106 f64.const 14107 f64.lt108 )109 (func $le_f64 (result i32)110 f64.const 5111 f64.const 14112 f64.le113 )114 (func $gt_f64 (result i32)115 f64.const 5116 f64.const 14117 f64.gt118 )119 (func $ge_f64 (result i32)120 f64.const 5121 f64.const 14122 f64.ge123 )124)125*/126 127// CHECK-LABEL: wasmssa.func @func_0() -> i32 {128// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32129// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32130// CHECK: %[[VAL_2:.*]] = wasmssa.lt_si %[[VAL_0]] %[[VAL_1]] : i32 -> i32131// CHECK: wasmssa.return %[[VAL_2]] : i32132 133// CHECK-LABEL: wasmssa.func @func_1() -> i32 {134// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32135// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32136// CHECK: %[[VAL_2:.*]] = wasmssa.le_si %[[VAL_0]] %[[VAL_1]] : i32 -> i32137// CHECK: wasmssa.return %[[VAL_2]] : i32138 139// CHECK-LABEL: wasmssa.func @func_2() -> i32 {140// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32141// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32142// CHECK: %[[VAL_2:.*]] = wasmssa.lt_ui %[[VAL_0]] %[[VAL_1]] : i32 -> i32143// CHECK: wasmssa.return %[[VAL_2]] : i32144 145// CHECK-LABEL: wasmssa.func @func_3() -> i32 {146// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32147// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32148// CHECK: %[[VAL_2:.*]] = wasmssa.le_ui %[[VAL_0]] %[[VAL_1]] : i32 -> i32149// CHECK: wasmssa.return %[[VAL_2]] : i32150 151// CHECK-LABEL: wasmssa.func @func_4() -> i32 {152// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32153// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32154// CHECK: %[[VAL_2:.*]] = wasmssa.gt_si %[[VAL_0]] %[[VAL_1]] : i32 -> i32155// CHECK: wasmssa.return %[[VAL_2]] : i32156 157// CHECK-LABEL: wasmssa.func @func_5() -> i32 {158// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32159// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32160// CHECK: %[[VAL_2:.*]] = wasmssa.gt_ui %[[VAL_0]] %[[VAL_1]] : i32 -> i32161// CHECK: wasmssa.return %[[VAL_2]] : i32162 163// CHECK-LABEL: wasmssa.func @func_6() -> i32 {164// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32165// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32166// CHECK: %[[VAL_2:.*]] = wasmssa.ge_si %[[VAL_0]] %[[VAL_1]] : i32 -> i32167// CHECK: wasmssa.return %[[VAL_2]] : i32168 169// CHECK-LABEL: wasmssa.func @func_7() -> i32 {170// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i32171// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i32172// CHECK: %[[VAL_2:.*]] = wasmssa.ge_ui %[[VAL_0]] %[[VAL_1]] : i32 -> i32173// CHECK: wasmssa.return %[[VAL_2]] : i32174 175// CHECK-LABEL: wasmssa.func @func_8() -> i32 {176// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64177// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64178// CHECK: %[[VAL_2:.*]] = wasmssa.lt_si %[[VAL_0]] %[[VAL_1]] : i64 -> i32179// CHECK: wasmssa.return %[[VAL_2]] : i32180 181// CHECK-LABEL: wasmssa.func @func_9() -> i32 {182// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64183// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64184// CHECK: %[[VAL_2:.*]] = wasmssa.le_si %[[VAL_0]] %[[VAL_1]] : i64 -> i32185// CHECK: wasmssa.return %[[VAL_2]] : i32186 187// CHECK-LABEL: wasmssa.func @func_10() -> i32 {188// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64189// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64190// CHECK: %[[VAL_2:.*]] = wasmssa.lt_ui %[[VAL_0]] %[[VAL_1]] : i64 -> i32191// CHECK: wasmssa.return %[[VAL_2]] : i32192 193// CHECK-LABEL: wasmssa.func @func_11() -> i32 {194// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64195// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64196// CHECK: %[[VAL_2:.*]] = wasmssa.le_ui %[[VAL_0]] %[[VAL_1]] : i64 -> i32197// CHECK: wasmssa.return %[[VAL_2]] : i32198 199// CHECK-LABEL: wasmssa.func @func_12() -> i32 {200// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64201// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64202// CHECK: %[[VAL_2:.*]] = wasmssa.gt_si %[[VAL_0]] %[[VAL_1]] : i64 -> i32203// CHECK: wasmssa.return %[[VAL_2]] : i32204 205// CHECK-LABEL: wasmssa.func @func_13() -> i32 {206// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64207// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64208// CHECK: %[[VAL_2:.*]] = wasmssa.gt_ui %[[VAL_0]] %[[VAL_1]] : i64 -> i32209// CHECK: wasmssa.return %[[VAL_2]] : i32210 211// CHECK-LABEL: wasmssa.func @func_14() -> i32 {212// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64213// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64214// CHECK: %[[VAL_2:.*]] = wasmssa.ge_si %[[VAL_0]] %[[VAL_1]] : i64 -> i32215// CHECK: wasmssa.return %[[VAL_2]] : i32216 217// CHECK-LABEL: wasmssa.func @func_15() -> i32 {218// CHECK: %[[VAL_0:.*]] = wasmssa.const 12 : i64219// CHECK: %[[VAL_1:.*]] = wasmssa.const 50 : i64220// CHECK: %[[VAL_2:.*]] = wasmssa.ge_ui %[[VAL_0]] %[[VAL_1]] : i64 -> i32221// CHECK: wasmssa.return %[[VAL_2]] : i32222 223// CHECK-LABEL: wasmssa.func @func_16() -> i32 {224// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f32225// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f32226// CHECK: %[[VAL_2:.*]] = wasmssa.lt %[[VAL_0]] %[[VAL_1]] : f32 -> i32227// CHECK: wasmssa.return %[[VAL_2]] : i32228 229// CHECK-LABEL: wasmssa.func @func_17() -> i32 {230// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f32231// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f32232// CHECK: %[[VAL_2:.*]] = wasmssa.le %[[VAL_0]] %[[VAL_1]] : f32 -> i32233// CHECK: wasmssa.return %[[VAL_2]] : i32234 235// CHECK-LABEL: wasmssa.func @func_18() -> i32 {236// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f32237// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f32238// CHECK: %[[VAL_2:.*]] = wasmssa.gt %[[VAL_0]] %[[VAL_1]] : f32 -> i32239// CHECK: wasmssa.return %[[VAL_2]] : i32240 241// CHECK-LABEL: wasmssa.func @func_19() -> i32 {242// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f32243// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f32244// CHECK: %[[VAL_2:.*]] = wasmssa.ge %[[VAL_0]] %[[VAL_1]] : f32 -> i32245// CHECK: wasmssa.return %[[VAL_2]] : i32246 247// CHECK-LABEL: wasmssa.func @func_20() -> i32 {248// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f64249// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f64250// CHECK: %[[VAL_2:.*]] = wasmssa.lt %[[VAL_0]] %[[VAL_1]] : f64 -> i32251// CHECK: wasmssa.return %[[VAL_2]] : i32252 253// CHECK-LABEL: wasmssa.func @func_21() -> i32 {254// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f64255// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f64256// CHECK: %[[VAL_2:.*]] = wasmssa.le %[[VAL_0]] %[[VAL_1]] : f64 -> i32257// CHECK: wasmssa.return %[[VAL_2]] : i32258 259// CHECK-LABEL: wasmssa.func @func_22() -> i32 {260// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f64261// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f64262// CHECK: %[[VAL_2:.*]] = wasmssa.gt %[[VAL_0]] %[[VAL_1]] : f64 -> i32263// CHECK: wasmssa.return %[[VAL_2]] : i32264 265// CHECK-LABEL: wasmssa.func @func_23() -> i32 {266// CHECK: %[[VAL_0:.*]] = wasmssa.const 5.000000e+00 : f64267// CHECK: %[[VAL_1:.*]] = wasmssa.const 1.400000e+01 : f64268// CHECK: %[[VAL_2:.*]] = wasmssa.ge %[[VAL_0]] %[[VAL_1]] : f64 -> i32269// CHECK: wasmssa.return %[[VAL_2]] : i32270