[llvm] [AArch64] Combine and and lsl into ubfiz (PR #118974)
Alexander Kornienko via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 17 06:44:21 PST 2025
alexfh wrote:
Here a reduced test case: https://gcc.godbolt.org/z/K9csK5znc
```
$ cat r.ll
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32"
target triple = "aarch64-unknown-linux-gnu"
define void @_f(ptr %0, ptr %1, i64 %2) {
store i64 -2401053089408754003, ptr %1, align 8
%4 = and i64 %2, -2401053089408754003
%5 = shl i64 %4, 1
store i64 %5, ptr %0, align 1
%6 = lshr i64 %4, 54
%7 = shl i64 %2, 10
%8 = and i64 %7, 131072
%9 = or disjoint i64 %8, %6
store i64 %9, ptr %1, align 1
ret void
}
$ ./clang-slow -O1 --target=aarch64-unknown-linux-gnu -mcpu=neoverse-n1 -mtune=generic -c r.ll
<takes forever>
```
Please fix or revert soon.
https://github.com/llvm/llvm-project/pull/118974
More information about the llvm-commits
mailing list