Bug 342571

Summary: Valgrind chokes on AVX compare intrinsic with _CMP_GE_QS
Product: [Developer tools] valgrind Reporter: Bram Stolk <b.stolk>
Component: vexAssignee: Julian Seward <jseward>
Status: RESOLVED FIXED    
Severity: crash CC: christian.hoff, pvh
Priority: NOR    
Version: 3.10.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Bug Depends on:    
Bug Blocks: 350593    

Description Bram Stolk 2015-01-07 06:42:46 UTC
vex amd64->IR: unhandled instruction bytes: 0xC5 0xEC 0xC2 0xD3 0x1D 0xC5 0xD4 0xC2
vex amd64->IR:   REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
vex amd64->IR:   VEX=1 VEX.L=1 VEX.nVVVV=0x2 ESC=0F
vex amd64->IR:   PFX.66=0 PFX.F2=0 PFX.F3=0
==9427== valgrind: Unrecognised instruction at address 0x40751b.

The offending source code on that line:
 __m256i ok0 = _mm256_cmp_ps( tmax, _mm256_max_ps( zero8, tmin ), _CMP_GE_OQ );

Ignore the max intrinsic: the crash goes away if _CMP_GE_OQ is changed into _CMP_GT_OQ

Reproducible: Always

Steps to Reproduce:
1.Build code with offending intrinsic in it.
2.Run valgrind over it.
3.

Actual Results:  
Unhandled instruction

Expected Results:  
Normal operation
Comment 1 Bram Stolk 2015-07-24 16:56:16 UTC
I've changed the component to 'VEX' as this is an omission in VEX.
Comment 2 Julian Seward 2015-08-13 12:49:58 UTC
Fixed, vex r3170.
Comment 3 Julian Seward 2015-08-13 12:50:59 UTC
*** Bug 346476 has been marked as a duplicate of this bug. ***
Comment 4 Julian Seward 2015-08-13 12:52:05 UTC
*** Bug 348387 has been marked as a duplicate of this bug. ***
Comment 5 Julian Seward 2015-08-13 12:53:02 UTC
*** Bug 350593 has been marked as a duplicate of this bug. ***