We take the 0th result from OrOpd0, which is not necessarily correct if it
produces multiple results -- for example, in this new test case, OrOpd0 is an
indexed load, and we want the 1st result.
Fix by remembering the original SDValue instead of making a new one.
n.b. This is a fix for this assert failure:
llc: /scratch/2/llvm-upstream/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:1993: bool isBitfieldPositioningOp(llvm::SelectionDAG*, llvm::SDValue, bool, llvm::SDValue&, int&, int&): Assertion `BitWidth == 32 || BitWidth == 64' failed.
...snip...
#9 0x0000000000f7bf97 isBitfieldPositioningOp(llvm::SelectionDAG*, llvm::SDValue, bool, llvm::SDValue&, int&, int&) /scratch/2/llvm-upstream/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:1995:0
#10 0x0000000000f7cdbd tryBitfieldInsertOpFromOr(llvm::SDNode*, llvm::APInt const&, llvm::SelectionDAG*) /scratch/2/llvm-upstream/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp:2200:0