[all-commits] [llvm/llvm-project] 4ef6ca: [Clang][AArch64] Fix crash with large arguments to...

Igor Kudrin via All-commits all-commits at lists.llvm.org
Tue May 26 13:51:45 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4ef6ca40f53fe5ef09b940a3d7d9a92a091dd878
      https://github.com/llvm/llvm-project/commit/4ef6ca40f53fe5ef09b940a3d7d9a92a091dd878
  Author: Igor Kudrin <ikudrin at accesssoftek.com>
  Date:   2026-05-26 (Tue, 26 May 2026)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
    M clang/lib/Sema/SemaARM.cpp
    M clang/test/AST/ast-dump-aarch64-mte.c
    M clang/test/CodeGen/arm64-mte.c
    M clang/test/Sema/builtins-arm64-mte.c

  Log Message:
  -----------
  [Clang][AArch64] Fix crash with large arguments to MTE built-ins (#197620)

The second argument to `__builtin_arm_irg()` and `__builtin_arm_gmi()`
is expected to be 64-bit. When a wider type is passed, the compiler
still generates a `zext` instruction, leading to a backend error:

```
> cat test.c
unsigned test(void* a, unsigned __int128 m) {
  return __builtin_arm_gmi(a, m);
}
> clang -target aarch64 -march=armv9+memtag -S test.c
fatal error: error in backend: Cannot select: ... i64,ch = load<... zext from i128>
```

This is fixed by applying the required implicit conversions to the
argument in Sema.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list