diff options
| -rw-r--r-- | llvm/test/tools/llvm-exegesis/X86/latency-SQRTSSr.s | 13 | ||||
| -rw-r--r-- | llvm/tools/llvm-exegesis/lib/X86/Target.cpp | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-exegesis/X86/latency-SQRTSSr.s b/llvm/test/tools/llvm-exegesis/X86/latency-SQRTSSr.s new file mode 100644 index 00000000000..1908b9a9e07 --- /dev/null +++ b/llvm/test/tools/llvm-exegesis/X86/latency-SQRTSSr.s @@ -0,0 +1,13 @@ +# RUN: llvm-exegesis -mode=latency -opcode-name=SQRTSSr -repetition-mode=loop | FileCheck %s + +# Check that the setup code for MXCSR does not crash the snippet. + +CHECK: --- +CHECK-NEXT: mode: latency +CHECK-NEXT: key: +CHECK-NEXT: instructions: +CHECK-NEXT: SQRTSSr +CHECK-NEXT: config: '' +CHECK-NEXT: register_initial_values: +CHECK-NOT: crashed +CHECK-LAST: ... diff --git a/llvm/tools/llvm-exegesis/lib/X86/Target.cpp b/llvm/tools/llvm-exegesis/lib/X86/Target.cpp index 08724dd4152..61da38e5f5d 100644 --- a/llvm/tools/llvm-exegesis/lib/X86/Target.cpp +++ b/llvm/tools/llvm-exegesis/lib/X86/Target.cpp @@ -513,6 +513,7 @@ ConstantInliner::loadImplicitRegAndFinalize(unsigned Opcode, unsigned Value) { .addReg(0) // IndexReg .addImm(0) // Disp .addReg(0)); // Segment + add(releaseStackSpace(4)); return std::move(Instructions); } |

