It seems that SSE3 _mm_monitor instrinsic doesn't work too well with
64bit.

[EMAIL PROTECTED] function]$ cat x.c
#include <stdio.h>
#include <pmmintrin.h>

static void
foo (char *p)
{
   _mm_monitor(p, 0, 0);
}

main()
{
    char *p = (char *)&foo;
    int fail = 1;
    int i;

    for (i = 0; i < 20; i++) {
        if (p[i] == 0x0f) {
            fail = 0;
            break;
        }
    }

    printf ("failed: %d\n", fail);
    return 0;
}

[EMAIL PROTECTED] function]$ make
/usr/gcc-4.1/bin/gcc -O2 -msse3    x.c   -o x
x.c: In function \uffff\uffff\ufffffoo\uffff\uffff\uffff:
x.c:8: error: unrecognizable insn:
(insn 11 10 12 1 (unspec_volatile [
            (reg/v/f:DI 58 [ p ])
            (reg:SI 59)
            (reg:SI 60)
        ] 8) -1 (nil)
    (nil))
x.c:8: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make: *** [x] Error 1
[EMAIL PROTECTED] function]$ /usr/gcc-4.1/bin/gcc -O2 -msse3    x.c   -o x -m32
[EMAIL PROTECTED] function]$ ./x
failed: 0


-- 
           Summary: SSE3 intrinsic bug
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hjl at lucon dot org
GCC target triplet: x86_64-unknown-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24879

Reply via email to