[PATCH] D154506: [ARM] in LowerConstantFP, make sure we cover armv6-m execute-only
Ties Stuij via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 11 02:42:41 PDT 2023
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGf0ae3c23b585: [ARM] in LowerConstantFP, make sure we cover armv6-m execute-only (authored by stuij).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D154506/new/
https://reviews.llvm.org/D154506
Files:
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/test/CodeGen/ARM/float-ops-xo.ll
llvm/test/CodeGen/Thumb2/float-ops-vmovsr-nofp-xo.ll
Index: llvm/test/CodeGen/ARM/float-ops-xo.ll
===================================================================
--- llvm/test/CodeGen/ARM/float-ops-xo.ll
+++ llvm/test/CodeGen/ARM/float-ops-xo.ll
@@ -1,5 +1,6 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
; RUN: llc < %s -mtriple=thumbv8.1m.main-none-eabihf -mattr=+mve,+execute-only | FileCheck %s
+; RUN: llc < %s -mtriple=thumbv6m -mattr=+execute-only | FileCheck %s --check-prefix=V6M
declare void @ext_fn(float)
@@ -12,6 +13,13 @@
; CHECK-NEXT: vmov s0, r0
; CHECK-NEXT: bl ext_fn
; CHECK-NEXT: pop {r7, pc}
+;
+; V6M-LABEL: test1:
+; V6M: @ %bb.0: @ %entry
+; V6M-NEXT: push {r7, lr}
+; V6M-NEXT: movs r0, #0
+; V6M-NEXT: bl ext_fn
+; V6M-NEXT: pop {r7, pc}
entry:
call void @ext_fn(float 0.000000e+00)
ret void
@@ -24,6 +32,17 @@
; CHECK-NEXT: movt r0, #16673
; CHECK-NEXT: vmov s0, r0
; CHECK-NEXT: bx lr
+;
+; V6M-LABEL: test2:
+; V6M: @ %bb.0: @ %entry
+; V6M-NEXT: movs r0, #65
+; V6M-NEXT: lsls r0, r0, #8
+; V6M-NEXT: adds r0, #33
+; V6M-NEXT: lsls r0, r0, #8
+; V6M-NEXT: adds r0, #249
+; V6M-NEXT: lsls r0, r0, #8
+; V6M-NEXT: adds r0, #167
+; V6M-NEXT: bx lr
entry:
ret float 0x40243F34E0000000
}
Index: llvm/lib/Target/ARM/ARMISelLowering.cpp
===================================================================
--- llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -7070,6 +7070,10 @@
// Prevent floating-point constants from using literal loads
// when execute-only is enabled.
if (ST->genExecuteOnly()) {
+ // We shouldn't trigger this for v6m execute-only
+ assert((!ST->isThumb1Only() || ST->hasV8MBaselineOps()) &&
+ "Unexpected architecture");
+
// If we can represent the constant as an immediate, don't lower it
if (isFPImmLegal(FPVal, VT))
return Op;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D154506.538987.patch
Type: text/x-patch
Size: 1955 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230711/33c28bd7/attachment.bin>
More information about the llvm-commits
mailing list