mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
ARM: Use a dedicated intrinsic for vector bitwise select.
The expression based expansion too often results in IR level optimizations splitting the intermediate values into separate basic blocks, preventing the formation of the VBSL instruction as the code author intended. In particular, LICM would often hoist part of the computation out of a loop. rdar://11011471 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164340 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -421,4 +421,9 @@ def int_arm_neon_vst4lane : Intrinsic<[],
|
||||
LLVMMatchType<0>, llvm_i32_ty,
|
||||
llvm_i32_ty], [IntrReadWriteArgMem]>;
|
||||
|
||||
// Vector bitwise select.
|
||||
def int_arm_neon_vbsl : Intrinsic<[llvm_anyvector_ty],
|
||||
[LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>],
|
||||
[IntrNoMem]>;
|
||||
|
||||
} // end TargetPrefix
|
||||
|
Reference in New Issue
Block a user