[PowerPC] PR19796: Also match ISD::TargetConstant in isIntS16Immediate
authorAdam Nemet <anemet@apple.com>
Tue, 20 May 2014 17:20:34 +0000 (17:20 +0000)
committerAdam Nemet <anemet@apple.com>
Tue, 20 May 2014 17:20:34 +0000 (17:20 +0000)
commitc9b12d06ef1ee950ed2125f6a810854e79e18929
treeb1c4fb7613453c06b7b261c4773c7de71398d2d1
parent68c7a1cb98399c770af6dc103bec45b1b7ca3c29
[PowerPC] PR19796: Also match ISD::TargetConstant in isIntS16Immediate

The SplitIndexingFromLoad changes exposed a latent isel bug in the PowerPC64
backend.  We matched an immediate offset with STWX8 even though it only
supports register offset.

The culprit is the complex-pattern predicate, SelectAddrIdx, which decides
that if the offset is not ISD::Constant it must be a register.

Many thanks to Bill Schmidt for testing this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209219 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/PPCISelLowering.cpp
test/CodeGen/PowerPC/indexed-load.ll [new file with mode: 0644]