August 31, 2023
https://issues.dlang.org/show_bug.cgi?id=24124

          Issue ID: 24124
           Summary: ImportC: building stb_image.h has errors in gcc
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Keywords: ImportC
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody@puremagic.com
          Reporter: schveiguy@gmail.com

Building `stb_image.h` from here: https://github.com/schveiguy/draylib/blob/master/raylibc/external/stb_image.h

Using the C file:

```c
#include "../config.h"
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
```

produces a lot of errors for missing intrinsics:

```
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(66): Error: undefined
identifier `__builtin_ia32_emms`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(79): Error: undefined
identifier `__builtin_ia32_vec_init_v2si`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(122): Error: undefined
identifier `__builtin_ia32_vec_ext_v2si`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(161): Error: undefined
identifier `__builtin_ia32_packsswb`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(176): Error: undefined
identifier `__builtin_ia32_packssdw`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(191): Error: undefined
identifier `__builtin_ia32_packuswb`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(205): Error: undefined
identifier `__builtin_ia32_punpckhbw`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(219): Error: undefined
identifier `__builtin_ia32_punpckhwd`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(233): Error: undefined
identifier `__builtin_ia32_punpckhdq`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(247): Error: undefined
identifier `__builtin_ia32_punpcklbw`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(261): Error: undefined
identifier `__builtin_ia32_punpcklwd`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(275): Error: undefined
identifier `__builtin_ia32_punpckldq`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(288): Error: undefined
identifier `__builtin_ia32_paddb`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(301): Error: undefined
identifier `__builtin_ia32_paddw`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(314): Error: undefined
identifier `__builtin_ia32_paddd`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(337): Error: undefined
identifier `__builtin_ia32_paddq`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(349): Error: undefined
identifier `__builtin_ia32_paddsb`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(363): Error: undefined
identifier `__builtin_ia32_paddsw`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(377): Error: undefined
identifier `__builtin_ia32_paddusb`
/usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h(391): Error: undefined
identifier `__builtin_ia32_paddusw`
```

This is not the full list, once I "undefined" these, there were pages and pages more.

Basically these are all the SIMD builtins for gcc.

--