[SystemZ] Reclassify f32 subregs of f64 registers
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Mon, 4 May 2015 17:41:22 +0000 (17:41 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Mon, 4 May 2015 17:41:22 +0000 (17:41 +0000)
commite6cd0c73a7af8db3deaa6b409040885f133be9c0
tree787c63f17a194b6f6dc6d7308ddbcf0ac1d71fff
parent7f3a9e28fa259847da6bf94c846ba2223f0d7ccc
[SystemZ] Reclassify f32 subregs of f64 registers

At the moment, all subregs defined by the SystemZ target can be modified
independently of the wider register.  E.g. writing to a GR32 does not
change the upper 32 bits of the GR64.  Writing to an FP32 does not change
the lower 32 bits of the FP64.

Hoewver, the upcoming support for the vector extension redefines FP64 as
one half of a V128.  Floating-point operations leave the other half of
a V128 in an unpredictable state, so it's no longer the case that writing
to an FP32 leaves the bits of the underlying register (the V128) alone.
I'd prefer to have separate subreg_ names for this situation, so that
it's obvious at a glance whether we're talking about a subreg that leaves
the other parts of the register alone.

No behavioral change intended.

Patch originally by Richard Sandiford.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236433 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/SystemZ/SystemZISelLowering.cpp
lib/Target/SystemZ/SystemZInstrFP.td
lib/Target/SystemZ/SystemZRegisterInfo.td