Bug 171869 - intrinsic pminub128 has changed signature
intrinsic pminub128 has changed signature
Status: CLOSED NOTABUG
Product: Fedora
Classification: Fedora
Component: gcc4 (Show other bugs)
4
x86_64 Linux
medium Severity low
: ---
: ---
Assigned To: Jakub Jelinek
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2005-10-27 05:56 EDT by Hakon Bugge
Modified: 2007-11-30 17:11 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2005-10-27 07:34:32 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
C source (162 bytes, text/plain)
2005-10-27 06:34 EDT, Hakon Bugge
no flags Details

  None (edit)
Description Hakon Bugge 2005-10-27 05:56:11 EDT
From Bugzilla Helper:
User-Agent: Opera/8.50 (Windows NT 5.1; U; en)

Description of problem:
The sse2 instruction pminub and pmaxub uses unsigned as basic type. In some 
former versions of gcc, the signature of pminub128 uses signed (i.e. char) as 
basic type.

It is possible to cast between the two vector type to avoid the:

error: incompatible type for argument 1 of `__builtin_ia32_pminub128'

but I need to know from which version of gcc this is fixed (in order to perform 
correct cast as function of gcc version).



Version-Release number of selected component (if applicable):
gcc 4.0.0 and gcc 3.x.y

How reproducible:
Always

Steps to Reproduce:
1. (using gcc version 3.x.y) gcc -c -msse3 -O3 -Wall gcc_pminub128_bug.c
2.
3.
  

Actual Results:  gcc_pminub128_bug.c: In function `packed_min':
gcc_pminub128_bug.c:4: error: incompatible type for argument 1 of 
`__builtin_ia32_pminub128'
gcc_pminub128_bug.c:4: error: incompatible type for argument 2 of 
`__builtin_ia32_pminub128'
gcc_pminub128_bug.c:4: error: incompatible types in return


Expected Results:  No errors

Additional info:

In essence, what I need is information for which version of gcc which uses 
signed vs. unsigned basic types for the vector argument to pminub128 and 
pmaxub128.
Comment 1 Hakon Bugge 2005-10-27 06:34:27 EDT
Created attachment 120457 [details]
C source
Comment 2 Jakub Jelinek 2005-10-27 07:34:32 EDT
That's user error.  __builtin_ia32_* aren't meant to be used directly by
the users and are subject to constant changes.

The supported interface are the <{,x,e,p}mmintrin.h>, <mm_malloc.h> and
<mm3dnow.h> inlines and macros.

So, in this case you are looking for _mm_min_epu8 from <emmintrin.h>.

Note You need to log in before you can comment on or make changes to this bug.