Stream: git-wasmtime

Topic: wasmtime / issue #5524 Cranelift: Wrong result for `selec...


view this post on Zulip Wasmtime GitHub notifications bot (Jan 05 2023 at 11:29):

afonso360 opened issue #5524:

:wave: Hey,

.clif Test Case

This one is quite sensitive to the arguments to the function. Removing for example v9 makes the test pass.

test interpret
test run
target riscv64

function %a(i128, i8, i8, i8, i32, i32, i8, i8, i64, i8) -> i8, i8, i8, i128 system_v {
block0(v0: i128, v1: i8, v2: i8, v3: i8, v4: i32, v5: i32, v6: i8, v7: i8, v8: i64, v9: i8):
    v16 = select v8, v0, v0
    return v1, v1, v1, v16
}

; run: %a(65280, 0, 0, 0, 0, 0, 0, 0, 0, 0) == [0, 0, 0, 65280]

Steps to Reproduce

Expected Results

The test to pass.

Actual Results

 ERROR cranelift_filetests::concurrent > FAIL: run
FAIL ./lmao.clif: run

Caused by:
    Failed test: run: %a(65280, 0, 0, 0, 0, 0, 0, 0, 0, 0) == [0, 0, 0, 65280], actual: [0, 0, 0, 1204203453131759529557760]
1 tests
Error: 1 failure

Versions and Environment

Cranelift version or commit: main
Operating system: Linux
Architecture: riscv64

Extra Info

<details>
<summary>Disassembly:</summary>

Disassembly of 92 bytes:
   0:   13 01 01 ff             addi    sp, sp, -0x10
   4:   23 34 11 00             sd      ra, 8(sp)
   8:   23 30 81 00             sd      s0, 0(sp)
   c:   13 64 01 00             ori     s0, sp, 0
  10:   03 08 04 01             lb      a6, 0x10(s0)
  14:   03 3e 84 01             ld      t3, 0x18(s0)
  18:   83 02 04 02             lb      t0, 0x20(s0)
  1c:   83 33 84 02             ld      t2, 0x28(s0)
  20:   63 08 0e 00             beqz    t3, 0x10
  24:   93 65 05 00             ori     a1, a0, 0
  28:   93 e6 05 00             ori     a3, a1, 0
  2c:   6f 00 c0 00             j       0xc
  30:   93 65 05 00             ori     a1, a0, 0
  34:   93 e6 05 00             ori     a3, a1, 0
  38:   23 80 c3 00             sb      a2, 0(t2)
  3c:   13 65 06 00             ori     a0, a2, 0
  40:   23 b4 b3 00             sd      a1, 8(t2)
  44:   23 b8 d3 00             sd      a3, 0x10(t2)
  48:   93 65 05 00             ori     a1, a0, 0
  4c:   83 30 81 00             ld      ra, 8(sp)
  50:   03 34 01 00             ld      s0, 0(sp)
  54:   13 01 01 01             addi    sp, sp, 0x10
  58:   67 80 00 00             ret

</details>

view this post on Zulip Wasmtime GitHub notifications bot (Jan 05 2023 at 11:29):

afonso360 labeled issue #5524:

:wave: Hey,

.clif Test Case

This one is quite sensitive to the arguments to the function. Removing for example v9 makes the test pass.

test interpret
test run
target riscv64

function %a(i128, i8, i8, i8, i32, i32, i8, i8, i64, i8) -> i8, i8, i8, i128 system_v {
block0(v0: i128, v1: i8, v2: i8, v3: i8, v4: i32, v5: i32, v6: i8, v7: i8, v8: i64, v9: i8):
    v16 = select v8, v0, v0
    return v1, v1, v1, v16
}

; run: %a(65280, 0, 0, 0, 0, 0, 0, 0, 0, 0) == [0, 0, 0, 65280]

Steps to Reproduce

Expected Results

The test to pass.

Actual Results

 ERROR cranelift_filetests::concurrent > FAIL: run
FAIL ./lmao.clif: run

Caused by:
    Failed test: run: %a(65280, 0, 0, 0, 0, 0, 0, 0, 0, 0) == [0, 0, 0, 65280], actual: [0, 0, 0, 1204203453131759529557760]
1 tests
Error: 1 failure

Versions and Environment

Cranelift version or commit: main
Operating system: Linux
Architecture: riscv64

Extra Info

<details>
<summary>Disassembly:</summary>

Disassembly of 92 bytes:
   0:   13 01 01 ff             addi    sp, sp, -0x10
   4:   23 34 11 00             sd      ra, 8(sp)
   8:   23 30 81 00             sd      s0, 0(sp)
   c:   13 64 01 00             ori     s0, sp, 0
  10:   03 08 04 01             lb      a6, 0x10(s0)
  14:   03 3e 84 01             ld      t3, 0x18(s0)
  18:   83 02 04 02             lb      t0, 0x20(s0)
  1c:   83 33 84 02             ld      t2, 0x28(s0)
  20:   63 08 0e 00             beqz    t3, 0x10
  24:   93 65 05 00             ori     a1, a0, 0
  28:   93 e6 05 00             ori     a3, a1, 0
  2c:   6f 00 c0 00             j       0xc
  30:   93 65 05 00             ori     a1, a0, 0
  34:   93 e6 05 00             ori     a3, a1, 0
  38:   23 80 c3 00             sb      a2, 0(t2)
  3c:   13 65 06 00             ori     a0, a2, 0
  40:   23 b4 b3 00             sd      a1, 8(t2)
  44:   23 b8 d3 00             sd      a3, 0x10(t2)
  48:   93 65 05 00             ori     a1, a0, 0
  4c:   83 30 81 00             ld      ra, 8(sp)
  50:   03 34 01 00             ld      s0, 0(sp)
  54:   13 01 01 01             addi    sp, sp, 0x10
  58:   67 80 00 00             ret

</details>

view this post on Zulip Wasmtime GitHub notifications bot (Jan 05 2023 at 11:29):

afonso360 labeled issue #5524:

:wave: Hey,

.clif Test Case

This one is quite sensitive to the arguments to the function. Removing for example v9 makes the test pass.

test interpret
test run
target riscv64

function %a(i128, i8, i8, i8, i32, i32, i8, i8, i64, i8) -> i8, i8, i8, i128 system_v {
block0(v0: i128, v1: i8, v2: i8, v3: i8, v4: i32, v5: i32, v6: i8, v7: i8, v8: i64, v9: i8):
    v16 = select v8, v0, v0
    return v1, v1, v1, v16
}

; run: %a(65280, 0, 0, 0, 0, 0, 0, 0, 0, 0) == [0, 0, 0, 65280]

Steps to Reproduce

Expected Results

The test to pass.

Actual Results

 ERROR cranelift_filetests::concurrent > FAIL: run
FAIL ./lmao.clif: run

Caused by:
    Failed test: run: %a(65280, 0, 0, 0, 0, 0, 0, 0, 0, 0) == [0, 0, 0, 65280], actual: [0, 0, 0, 1204203453131759529557760]
1 tests
Error: 1 failure

Versions and Environment

Cranelift version or commit: main
Operating system: Linux
Architecture: riscv64

Extra Info

<details>
<summary>Disassembly:</summary>

Disassembly of 92 bytes:
   0:   13 01 01 ff             addi    sp, sp, -0x10
   4:   23 34 11 00             sd      ra, 8(sp)
   8:   23 30 81 00             sd      s0, 0(sp)
   c:   13 64 01 00             ori     s0, sp, 0
  10:   03 08 04 01             lb      a6, 0x10(s0)
  14:   03 3e 84 01             ld      t3, 0x18(s0)
  18:   83 02 04 02             lb      t0, 0x20(s0)
  1c:   83 33 84 02             ld      t2, 0x28(s0)
  20:   63 08 0e 00             beqz    t3, 0x10
  24:   93 65 05 00             ori     a1, a0, 0
  28:   93 e6 05 00             ori     a3, a1, 0
  2c:   6f 00 c0 00             j       0xc
  30:   93 65 05 00             ori     a1, a0, 0
  34:   93 e6 05 00             ori     a3, a1, 0
  38:   23 80 c3 00             sb      a2, 0(t2)
  3c:   13 65 06 00             ori     a0, a2, 0
  40:   23 b4 b3 00             sd      a1, 8(t2)
  44:   23 b8 d3 00             sd      a3, 0x10(t2)
  48:   93 65 05 00             ori     a1, a0, 0
  4c:   83 30 81 00             ld      ra, 8(sp)
  50:   03 34 01 00             ld      s0, 0(sp)
  54:   13 01 01 01             addi    sp, sp, 0x10
  58:   67 80 00 00             ret

</details>

view this post on Zulip Wasmtime GitHub notifications bot (Jan 05 2023 at 11:34):

afonso360 edited issue #5524:

:wave: Hey,

.clif Test Case

This one is quite sensitive to the arguments to the function. Removing for example v9 makes the test pass.

test interpret
test run
target riscv64

function %a(i128, i8, i8, i8, i32, i32, i8, i8, i64, i8) -> i8, i8, i8, i128 system_v {
block0(v0: i128, v1: i8, v2: i8, v3: i8, v4: i32, v5: i32, v6: i8, v7: i8, v8: i64, v9: i8):
    v16 = select v8, v0, v0
    return v1, v1, v1, v16
}

; run: %a(65280, 0, 0, 0, 0, 0, 0, 0, 0, 0) == [0, 0, 0, 65280]

Steps to Reproduce

Expected Results

The test to pass.

Actual Results

 ERROR cranelift_filetests::concurrent > FAIL: run
FAIL ./lmao.clif: run

Caused by:
    Failed test: run: %a(65280, 0, 0, 0, 0, 0, 0, 0, 0, 0) == [0, 0, 0, 65280], actual: [0, 0, 0, 1204203453131759529557760]
1 tests
Error: 1 failure

Versions and Environment

Cranelift version or commit: main
Operating system: Linux
Architecture: riscv64

Extra Info

<details>
<summary>Disassembly:</summary>

Disassembly of 92 bytes:
   0:   13 01 01 ff             addi    sp, sp, -0x10
   4:   23 34 11 00             sd      ra, 8(sp)
   8:   23 30 81 00             sd      s0, 0(sp)
   c:   13 64 01 00             ori     s0, sp, 0
  10:   03 08 04 01             lb      a6, 0x10(s0)
  14:   03 3e 84 01             ld      t3, 0x18(s0)
  18:   83 02 04 02             lb      t0, 0x20(s0)
  1c:   83 33 84 02             ld      t2, 0x28(s0)
  20:   63 08 0e 00             beqz    t3, 0x10
  24:   93 65 05 00             ori     a1, a0, 0
  28:   93 e6 05 00             ori     a3, a1, 0
  2c:   6f 00 c0 00             j       0xc
  30:   93 65 05 00             ori     a1, a0, 0
  34:   93 e6 05 00             ori     a3, a1, 0
  38:   23 80 c3 00             sb      a2, 0(t2)
  3c:   13 65 06 00             ori     a0, a2, 0
  40:   23 b4 b3 00             sd      a1, 8(t2)
  44:   23 b8 d3 00             sd      a3, 0x10(t2)
  48:   93 65 05 00             ori     a1, a0, 0
  4c:   83 30 81 00             ld      ra, 8(sp)
  50:   03 34 01 00             ld      s0, 0(sp)
  54:   13 01 01 01             addi    sp, sp, 0x10
  58:   67 80 00 00             ret

</details>

view this post on Zulip Wasmtime GitHub notifications bot (Jan 05 2023 at 21:46):

fitzgen commented on issue #5524:

cc @yuyang-ok

view this post on Zulip Wasmtime GitHub notifications bot (Jan 06 2023 at 18:37):

elliottt labeled issue #5524:

:wave: Hey,

.clif Test Case

This one is quite sensitive to the arguments to the function. Removing for example v9 makes the test pass.

test interpret
test run
target riscv64

function %a(i128, i8, i8, i8, i32, i32, i8, i8, i64, i8) -> i8, i8, i8, i128 system_v {
block0(v0: i128, v1: i8, v2: i8, v3: i8, v4: i32, v5: i32, v6: i8, v7: i8, v8: i64, v9: i8):
    v16 = select v8, v0, v0
    return v1, v1, v1, v16
}

; run: %a(65280, 0, 0, 0, 0, 0, 0, 0, 0, 0) == [0, 0, 0, 65280]

Steps to Reproduce

Expected Results

The test to pass.

Actual Results

 ERROR cranelift_filetests::concurrent > FAIL: run
FAIL ./lmao.clif: run

Caused by:
    Failed test: run: %a(65280, 0, 0, 0, 0, 0, 0, 0, 0, 0) == [0, 0, 0, 65280], actual: [0, 0, 0, 1204203453131759529557760]
1 tests
Error: 1 failure

Versions and Environment

Cranelift version or commit: main
Operating system: Linux
Architecture: riscv64

Extra Info

<details>
<summary>Disassembly:</summary>

Disassembly of 92 bytes:
   0:   13 01 01 ff             addi    sp, sp, -0x10
   4:   23 34 11 00             sd      ra, 8(sp)
   8:   23 30 81 00             sd      s0, 0(sp)
   c:   13 64 01 00             ori     s0, sp, 0
  10:   03 08 04 01             lb      a6, 0x10(s0)
  14:   03 3e 84 01             ld      t3, 0x18(s0)
  18:   83 02 04 02             lb      t0, 0x20(s0)
  1c:   83 33 84 02             ld      t2, 0x28(s0)
  20:   63 08 0e 00             beqz    t3, 0x10
  24:   93 65 05 00             ori     a1, a0, 0
  28:   93 e6 05 00             ori     a3, a1, 0
  2c:   6f 00 c0 00             j       0xc
  30:   93 65 05 00             ori     a1, a0, 0
  34:   93 e6 05 00             ori     a3, a1, 0
  38:   23 80 c3 00             sb      a2, 0(t2)
  3c:   13 65 06 00             ori     a0, a2, 0
  40:   23 b4 b3 00             sd      a1, 8(t2)
  44:   23 b8 d3 00             sd      a3, 0x10(t2)
  48:   93 65 05 00             ori     a1, a0, 0
  4c:   83 30 81 00             ld      ra, 8(sp)
  50:   03 34 01 00             ld      s0, 0(sp)
  54:   13 01 01 01             addi    sp, sp, 0x10
  58:   67 80 00 00             ret

</details>

view this post on Zulip Wasmtime GitHub notifications bot (Jan 20 2023 at 22:06):

cfallin closed issue #5524:

:wave: Hey,

.clif Test Case

This one is quite sensitive to the arguments to the function. Removing for example v9 makes the test pass.

test interpret
test run
target riscv64

function %a(i128, i8, i8, i8, i32, i32, i8, i8, i64, i8) -> i8, i8, i8, i128 system_v {
block0(v0: i128, v1: i8, v2: i8, v3: i8, v4: i32, v5: i32, v6: i8, v7: i8, v8: i64, v9: i8):
    v16 = select v8, v0, v0
    return v1, v1, v1, v16
}

; run: %a(65280, 0, 0, 0, 0, 0, 0, 0, 0, 0) == [0, 0, 0, 65280]

Steps to Reproduce

Expected Results

The test to pass.

Actual Results

 ERROR cranelift_filetests::concurrent > FAIL: run
FAIL ./lmao.clif: run

Caused by:
    Failed test: run: %a(65280, 0, 0, 0, 0, 0, 0, 0, 0, 0) == [0, 0, 0, 65280], actual: [0, 0, 0, 1204203453131759529557760]
1 tests
Error: 1 failure

Versions and Environment

Cranelift version or commit: main
Operating system: Linux
Architecture: riscv64

Extra Info

<details>
<summary>Disassembly:</summary>

Disassembly of 92 bytes:
   0:   13 01 01 ff             addi    sp, sp, -0x10
   4:   23 34 11 00             sd      ra, 8(sp)
   8:   23 30 81 00             sd      s0, 0(sp)
   c:   13 64 01 00             ori     s0, sp, 0
  10:   03 08 04 01             lb      a6, 0x10(s0)
  14:   03 3e 84 01             ld      t3, 0x18(s0)
  18:   83 02 04 02             lb      t0, 0x20(s0)
  1c:   83 33 84 02             ld      t2, 0x28(s0)
  20:   63 08 0e 00             beqz    t3, 0x10
  24:   93 65 05 00             ori     a1, a0, 0
  28:   93 e6 05 00             ori     a3, a1, 0
  2c:   6f 00 c0 00             j       0xc
  30:   93 65 05 00             ori     a1, a0, 0
  34:   93 e6 05 00             ori     a3, a1, 0
  38:   23 80 c3 00             sb      a2, 0(t2)
  3c:   13 65 06 00             ori     a0, a2, 0
  40:   23 b4 b3 00             sd      a1, 8(t2)
  44:   23 b8 d3 00             sd      a3, 0x10(t2)
  48:   93 65 05 00             ori     a1, a0, 0
  4c:   83 30 81 00             ld      ra, 8(sp)
  50:   03 34 01 00             ld      s0, 0(sp)
  54:   13 01 01 01             addi    sp, sp, 0x10
  58:   67 80 00 00             ret

</details>


Last updated: Dec 23 2024 at 12:05 UTC