OSDN Git Service

[X86] Modify patterns from memory form of RCP/RSQRT/SQRT intrinsics to only allow...
authorCraig Topper <craig.topper@gmail.com>
Fri, 9 Dec 2016 07:57:21 +0000 (07:57 +0000)
committerCraig Topper <craig.topper@gmail.com>
Fri, 9 Dec 2016 07:57:21 +0000 (07:57 +0000)
commitff96f08e32d57a7753fc3e28dbe45f57b48a38a7
treeeef4a6f6ae69f3e0ee33c431ee353e68ff1eadaf
parent3e9ee5f060a9ed60aa49ac5928321e6ac53fa8cd
[X86] Modify patterns from memory form of RCP/RSQRT/SQRT intrinsics to only allow (scalar_to_vector (loadf32/load64)) instead of anything that sse_load_f32/f64 can match.

sse_load_f32/f64 can also match loads that are zero extended to vectors. We shouldn't match that because we wouldn't be able to get the instruction to zero the upper bits like the intrinsic semantics would require for such a case.

There is a test case that does depend on this behavior.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@289193 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrSSE.td