| // RUN: yaml2obj %S/inputs/extend.yaml.wasm -o - | mlir-translate --import-wasm | FileCheck %s |
| |
| /* Source code used to create this test: |
| (module |
| (func $i32_s (result i64) |
| i32.const 10 |
| i64.extend_i32_s |
| ) |
| (func $i32_u (result i64) |
| i32.const 10 |
| i64.extend_i32_u |
| ) |
| (func $extend8_32 (result i32) |
| i32.const 10 |
| i32.extend8_s |
| ) |
| (func $extend16_32 (result i32) |
| i32.const 10 |
| i32.extend16_s |
| ) |
| (func $extend8_64 (result i64) |
| i64.const 10 |
| i64.extend8_s |
| ) |
| (func $extend16_64 (result i64) |
| i64.const 10 |
| i64.extend16_s |
| ) |
| (func $extend32_64 (result i64) |
| i64.const 10 |
| i64.extend32_s |
| ) |
| ) |
| */ |
| |
| // CHECK-LABEL: wasmssa.func @func_0() -> i64 { |
| // CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i32 |
| // CHECK: %[[VAL_1:.*]] = wasmssa.extend_i32_s %[[VAL_0]] to i64 |
| // CHECK: wasmssa.return %[[VAL_1]] : i64 |
| |
| // CHECK-LABEL: wasmssa.func @func_1() -> i64 { |
| // CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i32 |
| // CHECK: %[[VAL_1:.*]] = wasmssa.extend_i32_u %[[VAL_0]] to i64 |
| // CHECK: wasmssa.return %[[VAL_1]] : i64 |
| |
| // CHECK-LABEL: wasmssa.func @func_2() -> i32 { |
| // CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i32 |
| // CHECK: %[[VAL_1:.*]] = wasmssa.extend 8 : ui32 low bits from %[[VAL_0]] : i32 |
| // CHECK: wasmssa.return %[[VAL_1]] : i32 |
| |
| // CHECK-LABEL: wasmssa.func @func_3() -> i32 { |
| // CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i32 |
| // CHECK: %[[VAL_1:.*]] = wasmssa.extend 16 : ui32 low bits from %[[VAL_0]] : i32 |
| // CHECK: wasmssa.return %[[VAL_1]] : i32 |
| |
| // CHECK-LABEL: wasmssa.func @func_4() -> i64 { |
| // CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i64 |
| // CHECK: %[[VAL_1:.*]] = wasmssa.extend 8 : ui32 low bits from %[[VAL_0]] : i64 |
| // CHECK: wasmssa.return %[[VAL_1]] : i64 |
| |
| // CHECK-LABEL: wasmssa.func @func_5() -> i64 { |
| // CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i64 |
| // CHECK: %[[VAL_1:.*]] = wasmssa.extend 16 : ui32 low bits from %[[VAL_0]] : i64 |
| // CHECK: wasmssa.return %[[VAL_1]] : i64 |
| |
| // CHECK-LABEL: wasmssa.func @func_6() -> i64 { |
| // CHECK: %[[VAL_0:.*]] = wasmssa.const 10 : i64 |
| // CHECK: %[[VAL_1:.*]] = wasmssa.extend 32 : ui32 low bits from %[[VAL_0]] : i64 |
| // CHECK: wasmssa.return %[[VAL_1]] : i64 |