Fix constant folding through bitcasts by no longer relying on undefined behaviour...
authorKristof Beyls <kristof.beyls@arm.com>
Wed, 12 Sep 2012 11:25:02 +0000 (11:25 +0000)
committerKristof Beyls <kristof.beyls@arm.com>
Wed, 12 Sep 2012 11:25:02 +0000 (11:25 +0000)
commit789efbad2a7b2c7693a3aee7b6d08806c361538f
tree5d559b32046763177db76725be30739339547a6c
parentd76f6eadc8c8511e1c5cd089a8a54e429c19aa60
Fix constant folding through bitcasts by no longer relying on undefined behaviour (converting NaN values between float and double).

SelectionDAG::getConstantFP(double Val, EVT VT, bool isTarget);
should not be used when Val is not a simple constant (as the comment in
SelectionDAG.h indicates). This patch avoids using this function
when folding an unknown constant through a bitcast, where it cannot be
guaranteed that Val will be a simple constant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163703 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
test/CodeGen/ARM/constants.ll