diff options
author | Jessica Paquette <jpaquette@apple.com> | 2021-03-08 11:32:58 -0800 |
---|---|---|
committer | Jessica Paquette <jpaquette@apple.com> | 2021-03-08 14:37:33 -0800 |
commit | f7d73a6b9e8d6aad2039be1f6f42c9b3e012677f (patch) | |
tree | 0a7fb4a1e6b1ccec34dda34372af13be905c84f6 /llvm/lib/Analysis/ValueTracking.cpp | |
parent | c460ef61d64f3ccb46f60d1b53f271f5b1c05b79 (diff) | |
download | llvm-f7d73a6b9e8d6aad2039be1f6f42c9b3e012677f.zip llvm-f7d73a6b9e8d6aad2039be1f6f42c9b3e012677f.tar.gz llvm-f7d73a6b9e8d6aad2039be1f6f42c9b3e012677f.tar.bz2 |
[SelectionDAG] Don't scalarize vector fpround sources that don't need it.
Similar to the workaround code in ScalarizeVecRes_UnaryOp, ScalarizeVecRes_SETCC
, ScalarizeVecRes_VSELECT, etc.
If we have a case like this:
```
define <1 x half> @func(<1 x float> %x) {
%tmp = fptrunc <1 x float> %x to <1 x half>
ret <1 x half> %tmp
}
```
On AArch64, the <1 x float> is legal. So, this will crash if we call
GetScalarizedVector on it.
Differential Revision: https://reviews.llvm.org/D98208
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
0 files changed, 0 insertions, 0 deletions