https://bugs.kde.org/show_bug.cgi?id=508661

            Bug ID: 508661
           Summary: ppc64le: Testcase none/tests/ppc64/test_isa_3_1_VRT
                    assserts
    Classification: Developer tools
           Product: valgrind
      Version First unspecified
       Reported In:
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: vex
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

With current git ffc66d9dcdc2

Testcase none/tests/ppc64/test_isa_3_1_VRT asserts in function
dis_vx_quadword_arith 
because of this:

putVReg( vT_addr, binop( Iop_ModS128, mkexpr( ......

where binop produces an IRExpr of type Ity_I128 but PutVReg expects that
expression to have type Ity_V128.

The code has been like this since affeb57ccd 2021-01-22. Has this ever worked?

Here's the reproducer:

__attribute__((altivec(vector__))) unsigned long long vrt, vra, vrb, vrc;

static void test_vdivesq (void) {
  __asm__ __volatile__ ("vdivesq %0, %1, %2"
    : "=v" (vrt) : "v" (vra), "v" (vrb) );
}

int main()
{
  test_vdivesq();
  return 0;
}

On a POWER10 machine (or newer):
gcc -c test.c
valgrind --tool=none ./a.out

vex: priv/guest_ppc_toIR.c:1717 (putVReg): Assertion `typeOfIRExpr(irsb->tyenv,
e) == Ity_V128' failed.
vex storage: T total 86151576 bytes allocated
vex storage: P total 192 bytes allocated

valgrind: the 'impossible' happened:
   LibVEX called failure_exit().

host stacktrace:
==918931==    at 0x58038798: show_sched_status_wrk (m_libcassert.c:426)
==918931==    by 0x5803896F: report_and_quit (m_libcassert.c:497)
==918931==    by 0x58038BB7: vgPlain_core_panic_at (m_libcassert.c:572)
==918931==    by 0x58038BEB: vgPlain_core_panic (m_libcassert.c:582)
==918931==    by 0x58055BC7: failure_exit (m_translate.c:761)
==918931==    by 0x5815D47B: vex_assert_fail (main_util.c:245)
==918931==    by 0x5818C69F: putVReg (guest_ppc_toIR.c:1717)
==918931==    by 0x581EC5A7: dis_vx_quadword_arith.constprop.0
(guest_ppc_toIR.c:29043)
==918931==    by 0x582251AB: disInstr_PPC (guest_ppc_toIR.c:37816)
==918931==    by 0x58182B3B: disassemble_basic_block_till_stop
(guest_generic_bb_to_IR.c:956)
==918931==    by 0x58184E4B: bb_to_IR (guest_generic_bb_to_IR.c:1451)
==918931==    by 0x5815AFDB: LibVEX_FrontEnd (main_main.c:617)
==918931==    by 0x5815BA3F: LibVEX_Translate (main_main.c:1293)
==918931==    by 0x5805965B: vgPlain_translate (m_translate.c:1835)
==918931==    by 0x5801AA23: vgPlain_scheduler (scheduler.c:1144)
==918931==    by 0x580ADC07: run_a_thread_NORETURN (syswrap-linux.c:102)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to