clang-21 doesn't support `-ffixed-xmm0`, so `%xmm0` won't have the expected value. Disable these tests on clang.
Signed-off-by: Edwin Török <[email protected]> --- tools/tests/x86_emulator/test_x86_emulator.c | 44 ++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tools/tests/x86_emulator/test_x86_emulator.c b/tools/tests/x86_emulator/test_x86_emulator.c index cf4e5cc593..3d0ad07c6b 100644 --- a/tools/tests/x86_emulator/test_x86_emulator.c +++ b/tools/tests/x86_emulator/test_x86_emulator.c @@ -2683,6 +2683,7 @@ int main(int argc, char **argv) printf("skipped\n"); printf("%-40s", "Testing fxsave 4(%ecx)..."); +#ifndef __clang__ if ( stack_exec && cpu_has_fxsr ) { const uint16_t nine = 9; @@ -2712,6 +2713,7 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing fxrstor -4(%ecx)..."); @@ -2748,6 +2750,7 @@ int main(int argc, char **argv) #ifdef __x86_64__ printf("%-40s", "Testing fxsaveq 8(%edx)..."); +#ifndef __clang__ if ( stack_exec && cpu_has_fxsr ) { memset(res + 0x80, 0xcc, 0x400); @@ -2765,6 +2768,7 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); #endif @@ -2816,6 +2820,7 @@ int main(int argc, char **argv) printf("skipped\n"); printf("%-40s", "Testing movq %xmm0,32(%ecx)..."); +#ifndef __clang__ if ( stack_exec && cpu_has_sse2 ) { decl_insn(movq_to_mem2); @@ -2837,9 +2842,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing movq 32(%ecx),%xmm1..."); +#ifndef __clang__ if ( stack_exec && cpu_has_sse2 ) { decl_insn(movq_from_mem2); @@ -2860,9 +2867,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing vmovq %xmm1,32(%edx)..."); +#ifndef __clang__ if ( stack_exec && cpu_has_avx ) { decl_insn(vmovq_to_mem); @@ -2884,9 +2893,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing vmovq 32(%edx),%xmm0..."); +#ifndef __clang__ if ( stack_exec && cpu_has_avx ) { decl_insn(vmovq_from_mem); @@ -2907,9 +2918,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing {evex} vmovq %xmm1,32(%edx)..."); +#ifndef __clang__ if ( stack_exec && cpu_has_avx512f ) { decl_insn(evex_vmovq_to_mem); @@ -2931,9 +2944,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing {evex} vmovq 32(%edx),%xmm0..."); +#ifndef __clang__ if ( stack_exec && cpu_has_avx512f ) { decl_insn(evex_vmovq_from_mem); @@ -2954,9 +2969,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing movdqu %xmm2,(%ecx)..."); +#ifndef __clang__ if ( stack_exec && cpu_has_sse2 ) { decl_insn(movdqu_to_mem); @@ -2976,9 +2993,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing movdqu (%edx),%xmm4..."); +#ifndef __clang__ if ( stack_exec && cpu_has_sse2 ) { decl_insn(movdqu_from_mem); @@ -3001,6 +3020,7 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing vmovdqu %ymm2,(%ecx)..."); @@ -3386,6 +3406,7 @@ int main(int argc, char **argv) printf("skipped\n"); printf("%-40s", "Testing movd %xmm2,32(%edx)..."); +#ifndef __clang__ if ( stack_exec && cpu_has_sse2 ) { decl_insn(movd_to_mem2); @@ -3407,9 +3428,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing movd 32(%edx),%xmm3..."); +#ifndef __clang__ if ( stack_exec && cpu_has_sse2 ) { decl_insn(movd_from_mem2); @@ -3435,9 +3458,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing vmovd %xmm1,32(%ecx)..."); +#ifndef __clang__ if ( stack_exec && cpu_has_avx ) { decl_insn(vmovd_to_mem); @@ -3459,9 +3484,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing vmovd 32(%ecx),%xmm2..."); +#ifndef __clang__ if ( stack_exec && cpu_has_avx ) { decl_insn(vmovd_from_mem); @@ -3487,6 +3514,7 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing {evex} vmovd %xmm3,32(%ecx)..."); @@ -3597,6 +3625,7 @@ int main(int argc, char **argv) printf("skipped\n"); printf("%-40s", "Testing movd %xmm2,%ebx..."); +#ifndef __clang__ if ( stack_exec && cpu_has_sse2 ) { decl_insn(movd_to_reg2); @@ -3619,6 +3648,7 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing movd %ebx,%xmm3..."); @@ -3651,6 +3681,7 @@ int main(int argc, char **argv) printf("skipped\n"); printf("%-40s", "Testing vmovd %xmm1,%ebx..."); +#ifndef __clang__ if ( stack_exec && cpu_has_avx ) { decl_insn(vmovd_to_reg); @@ -3673,6 +3704,7 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing vmovd %ebx,%xmm2..."); @@ -3705,6 +3737,7 @@ int main(int argc, char **argv) printf("skipped\n"); printf("%-40s", "Testing {evex} vmovd %xmm2,%ebx..."); +#ifndef __clang__ if ( stack_exec && cpu_has_avx512f ) { decl_insn(evex_vmovd_to_reg); @@ -3728,6 +3761,7 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing {evex} vmovd %ebx,%xmm1..."); @@ -3781,6 +3815,7 @@ int main(int argc, char **argv) printf("skipped\n"); printf("%-40s", "Testing movq %xmm2,32(%edx)..."); +#ifndef __clang__ if ( stack_exec ) { decl_insn(movq_to_mem4); @@ -3802,9 +3837,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing vmovq %xmm1,32(%ecx)..."); +#ifndef __clang__ if ( stack_exec && cpu_has_avx ) { decl_insn(vmovq_to_mem2); @@ -3830,9 +3867,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing {evex} vmovq %xmm11,32(%ecx)..."); +#ifndef __clang__ if ( stack_exec && cpu_has_avx512f ) { decl_insn(evex_vmovq_to_mem2); @@ -3860,6 +3899,7 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing movq %mm3,%rbx..."); @@ -3883,6 +3923,7 @@ int main(int argc, char **argv) printf("skipped\n"); printf("%-40s", "Testing movq %xmm2,%rbx..."); +#ifndef __clang__ if ( stack_exec ) { decl_insn(movq_to_reg2); @@ -3900,9 +3941,11 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing vmovq %xmm1,%rbx..."); +#ifndef __clang__ if ( stack_exec && cpu_has_avx ) { decl_insn(vmovq_to_reg); @@ -3920,6 +3963,7 @@ int main(int argc, char **argv) printf("okay\n"); } else +#endif printf("skipped\n"); printf("%-40s", "Testing vmovq %xmm22,%rbx..."); -- 2.47.3
