When I read the llvm sources, l find a problem as follows. There seems to be a mistake in this (Arm::Addrsi) instruction's Operands. In llvm version 7.1 , lib/Target/ARM/ARMISelDAGToDAG.cpp : 2696 - 2698. The latest version is also so. SDValue Ops[] = { V, V, Reg0, ShImmOp, getAL(CurDAG, dl), Reg0, Reg0 }; CurDAG->SelectNodeTo(N, ARM::ADDrsi, MVT::i32, Ops); I think that the third arg should be removed. SDValue Ops[] = { V, V , ShImmOp, getAL(CurDAG, dl), Reg0, Reg0 }; Looking forward your reply. Thanks. Best wishes . -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210107/e9095aaa/attachment.html>