[PATCH] D107160: [AArch64] Do not emit an extra zero-extend for i1 argument

Amara Emerson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 28 17:40:38 PDT 2021


aemerson added inline comments.


================
Comment at: llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp:553
+        Register OrigReg = OrigArg.Regs[0];
+        Register WideReg = MRI.createGenericVirtualRegister(LLT(MVT::i8));
+        OrigArg.Regs[0] = WideReg;
----------------
This can be `LLT::scalar(8)`


================
Comment at: llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp:587
+          MIRBuilder
+              .buildAssertZExt(WideTy, WideReg, OrigTy.getScalarSizeInBits())
+              .getReg(0);
----------------
If these are bool args then we can assume OrigTy.getScalarSizeInBits() == 1 right?


================
Comment at: llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp:588-589
+              .buildAssertZExt(WideTy, WideReg, OrigTy.getScalarSizeInBits())
+              .getReg(0);
+      MIRBuilder.buildTrunc(OrigReg, WideReg);
+    }
----------------
MIRBuilder's builder methods return a MachineInstrBuilder that can be directly passed into most source operands of other builder methods. You can simplify these lines into something like:
```
MIRBuilder.buildTrunc(OrigReg, MIRBuilder.buildAssertZExt(WideTy, WideReg, 1));
```



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D107160/new/

https://reviews.llvm.org/D107160



More information about the llvm-commits mailing list