On i686-apple-darwin9, we are seeing failures in the following sse4 related test cases... FAIL: gcc.target/i386/sse4_1-blendvpd.c (test for excess errors) WARNING: gcc.target/i386/sse4_1-blendvpd.c compilation failed to produce executable FAIL: gcc.target/i386/sse4_1-blendvps.c (test for excess errors) WARNING: gcc.target/i386/sse4_1-blendvps.c compilation failed to produce executable FAIL: gcc.target/i386/sse4_1-insertps-1.c (test for excess errors) WARNING: gcc.target/i386/sse4_1-insertps-1.c compilation failed to produce executable FAIL: gcc.target/i386/sse4_1-insertps-2.c (test for excess errors) WARNING: gcc.target/i386/sse4_1-insertps-2.c compilation failed to produce executable FAIL: gcc.target/i386/sse4_1-pblendvb.c (test for excess errors) WARNING: gcc.target/i386/sse4_1-pblendvb.c compilation failed to produce executable FAIL: gcc.target/i386/sse4_2-popcntl.c (test for excess errors) WARNING: gcc.target/i386/sse4_2-popcntl.c compilation failed to produce executable FAIL: gcc.target/i386/sse4_2-popcntq.c (test for excess errors) WARNING: gcc.target/i386/sse4_2-popcntq.c compilation failed to produce executable The actual failures in gcc.log look like... Executing on host: /sw/src/fink.build/gcc43-4.2.999-20071214/darwin_objdir/gcc/xgcc -B/sw/src/fink.build/gcc43-4.2.999-20071214/darwin_obj dir/gcc/ /sw/src/fink.build/gcc43-4.2.999-20071214/gcc-4.3-20071214/gcc/testsuite/gcc.target/i386/sse4_1-insertps-2.c -O2 -msse4.1 -fno- show-column -lm -m32 -o ./sse4_1-insertps-2.exe (timeout = 300) :161:suffix or operands invalid for `insertps' :164:suffix or operands invalid for `insertps' :167:suffix or operands invalid for `insertps' :168:suffix or operands invalid for `insertps' compiler exited with status 1 output is: :161:suffix or operands invalid for `insertps' :164:suffix or operands invalid for `insertps' :167:suffix or operands invalid for `insertps' :168:suffix or operands invalid for `insertps' FAIL: gcc.target/i386/sse4_1-insertps-2.c (test for excess errors) Excess errors: :161:suffix or operands invalid for `insertps' :164:suffix or operands invalid for `insertps' :167:suffix or operands invalid for `insertps' :168:suffix or operands invalid for `insertps' WARNING: gcc.target/i386/sse4_1-insertps-2.c compilation failed to produce executable
These same make check failures occur at both -m32 and -m64..
This might be a bug in Apple's assembler.
Created attachment 14782 [details] preprocessed source file from sse4_1-insertps-2.c testcase on i686-apple-darwin9
Created attachment 14783 [details] assembly file from sse4_1-insertps-2.c testcase on i686-apple-darwin9
Filed as Radar Problem ID: 5650346.
Jack, Did Apple give any reply on this. Is this their bug? If so we better close the gcc bug as invalid.
No official response yet although Mike Stump agrees that it is probably a bug in their assembler.
I think its reasonable to close this bug as invalid, do you agree? Meanwhile we can bug Apple Gcc guys to take a stab at this. Thanks, ismail
With Xcode 3.1.1 all the failures disappeared but gcc.target/i386/sse4_2-popcntl.c: FAIL: gcc.target/i386/sse4_2-popcntl.c (test for excess errors) WARNING: gcc.target/i386/sse4_2-popcntl.c compilation failed to produce executable The error is: [ibook-dhum] f90/bug% gcc44 -m64 -O2 -msse4.2 /opt/gcc/_gcc_clean/gcc/testsuite/gcc.target/i386/sse4_2-popcntl.c /var/folders/iU/iUj3xngxGYe3MPCc0TZUcE+++TI/-Tmp-//ccsFk4uR.s:31:suffix or operands invalid for `popcnt' and the offending line in assembly code is: popcntl %edx, %eax
Comment #9 was for -m32, with -m64 the failures are FAIL: gcc.target/i386/sse4_2-popcntl.c (test for excess errors) WARNING: gcc.target/i386/sse4_2-popcntl.c compilation failed to produce executable FAIL: gcc.target/i386/sse4_2-popcntq.c (test for excess errors) WARNING: gcc.target/i386/sse4_2-popcntq.c compilation failed to produce executable
Dominique, The remaining failure in the sse4_2-popcntl.c testcase has been reported for awhile on radar (ID 5650346). Like the previous errors these are most likely assembler bugs.
> The remaining failure in the sse4_2-popcntl.c testcase has been reported > for awhile on radar (ID 5650346). Like the previous errors these are most > likely assembler bugs. Jack, Did you get any feedback from Apple saying that the other previous errors have been fixed? (I think they were not in Xcode 3.1.0).
No, I never got a message that any of the originally reported sse4 gcc test cases were fixed. I simply noticed it during testing. The radar report is still open though. Feel free to open a duplicate to try to ping the Apple cctools developers on this issue.
Fully resolved with... ------------------------------------------------------------------------ r142121 | uros | 2008-11-22 09:16:57 -0500 (Sat, 22 Nov 2008) | 18 lines PR target/38222 * config/i386/i386.md (SWI248): New mode iterator. (SWI32): Remove mode iterator. (popcount<mode>2): Rename from popcounthi2, popcountsi2 and popcounthi2 insn patterns. Macroize pattern using SWI248 mode iterator. Generate popcnt mnemonic without mode extensions for Darwin x86 targets. (*popcount<mode>2_cmp): Ditto. (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode extensions for Darwin x86 targets. testsuite/ChangeLog: PR target/38222 * gcc.target/i386/funcspec-3.c: Scan for popcnt on Darwin targets.