Skip to content

vec_lde and vec_expte semi-randomly produce the wrong results

Host environment

  • Operating system: Gentoo
  • OS/kernel version: Linux sol 5.0.10-gentoo #1 SMP Wed May 1 16:02:20 -00 2019 ppc64le POWER9, altivec supported PowerNV T2P9S01 REV 1.01 GNU/Linux
  • Architecture: ppc64le (and x86_64)
  • QEMU flavor: qemu-ppc64le
  • QEMU version: 8.0.0-rc4
  • QEMU command line:
export CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_LINKER=powerpc64le-linux-gnu-gcc
export CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc64le -cpu power9 -L /usr/powerpc64le-linux-gnu"
CC=powerpc64le-linux-gnu-gcc 
OBJDUMP=powerpc64le-linux-gnu-objdump
cd crates/core_arch
TARGET=powerpc64le-unknown-linux-gnu cargo test --release

Description of problem

I found that while implementing the Altivec support for the rust stdarch.

Steps to reproduce

  1. Install rust nightly (e.g. using https://rustup.rs/)
  2. git clone https://github.com/rust-lang/stdarch
  3. You need to either cross compile or compile and run the tests for crates/core_arch.

Additional information

Both valgrind and running on power9 produce the correct results

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information