Fix PR15674 (and PR15603): a SROA think-o.
authorChandler Carruth <chandlerc@gmail.com>
Sun, 7 Apr 2013 11:47:54 +0000 (11:47 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sun, 7 Apr 2013 11:47:54 +0000 (11:47 +0000)
commit0e8a52d18fbca4062234310709bedb44abd3ecd2
tree43ccd30211d7f31e25d50928aefa06abf0a39606
parentd71cc3a7f367eac9284cc61002e434bad7324c08
Fix PR15674 (and PR15603): a SROA think-o.

The fix for PR14972 in r177055 introduced a real think-o in the *store*
side, likely because I was much more focused on the load side. While we
can arbitrarily widen (or narrow) a loaded value, we can't arbitrarily
widen a value to be stored, as that changes the width of memory access!
Lock down the code path in the store rewriting which would do this to
only handle the intended circumstance.

All of the existing tests continue to pass, and I've added a test from
the PR.

llvm-svn: 178974
llvm/lib/Transforms/Scalar/SROA.cpp
llvm/test/Transforms/SROA/basictest.ll