diff options
author | Arnold Schwaighofer <aschwaighofer@apple.com> | 2013-03-15 18:31:01 +0000 |
---|---|---|
committer | Arnold Schwaighofer <aschwaighofer@apple.com> | 2013-03-15 18:31:01 +0000 |
commit | 9d7a3827e4b0d089c1ee8fe2dff269f97e5e4618 (patch) | |
tree | 5f82d038c8b2dde8faaa974225b7cd3e29adcdd3 /lldb/source/DataFormatters/FormatManager.cpp | |
parent | 82dd6ac3bc6b361d26b04ca47dbda24d7c17f06c (diff) | |
download | bcm5719-llvm-9d7a3827e4b0d089c1ee8fe2dff269f97e5e4618.tar.gz bcm5719-llvm-9d7a3827e4b0d089c1ee8fe2dff269f97e5e4618.zip |
ARM cost model: Fix costs for some vector selects
I was too pessimistic in r177105. Vector selects that fit into a legal register
type lower just fine. I was mislead by the code fragment that I was using. The
stores/loads that I saw in those cases came from lowering the conditional off
an address.
Changing the code fragment to:
%T0_3 = type <8 x i18>
%T1_3 = type <8 x i1>
define void @func_blend3(%T0_3* %loadaddr, %T0_3* %loadaddr2,
%T1_3* %blend, %T0_3* %storeaddr) {
%v0 = load %T0_3* %loadaddr
%v1 = load %T0_3* %loadaddr2
==> FROM:
;%c = load %T1_3* %blend
==> TO:
%c = icmp slt %T0_3 %v0, %v1
==> USE:
%r = select %T1_3 %c, %T0_3 %v0, %T0_3 %v1
store %T0_3 %r, %T0_3* %storeaddr
ret void
}
revealed this mistake.
radar://13403975
llvm-svn: 177170
Diffstat (limited to 'lldb/source/DataFormatters/FormatManager.cpp')
0 files changed, 0 insertions, 0 deletions