Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ prerequisites:
- Familiarity with indirect functions (ifuncs).
- Basic knowledge of loop vectorization.
- Familiarity with Arm assembly.
- A LLVM 20 compiler with runtime library support or GCC 14.
- A LLVM 20 compiler with runtime library support or GCC 16.

author: Alexandros Lamprineas

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,10 +141,6 @@ To compile with GCC, use:
g++ -march=armv8-a -O3 dotprod.c
```

{{% notice Note %}}
Note that `gcc-14` does not yet support `target_version` when using the c-frontend. You can use `g++-14` instead.
{{% /notice %}}

To run the application:

```console
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,6 @@ To compile with GCC, run:
g++ -march=armv8-a -O3 skip-word.c
```

{{% notice Note %}}
Note that `gcc++-14` does not support "mops" as a function multiversioning feature, so to compile this example with gcc remove the `target_clones` from CopyWord.
{{% /notice %}}

To run the application:

```console
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,9 @@ f.resolver:
The immediate value `#12582912` in this assembly is used to construct a bitmask for materializing the runtime detection of `rcpc3`.
{{% /notice %}}

#### Differences between GCC 14 and LLVM 20 implementations
#### Differences between GCC 16 and LLVM 20 implementations

- The attribute `target_version` in GCC is only supported for C++, not for C.
- The set of features as indicated by the [mapping table](https://arm-software.github.io/acle/main/acle.html#mapping) differs in support between the two compilers.
- LLVM supports mixing `target_version` with `target_clones` whereas GCC does not yet support this.

#### Resolver emission with LLVM

Expand Down