From 22a535e91a795e52c8b8c01ad04e3577e9f7ae5b Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 11 Nov 2019 23:30:55 -0800 Subject: [PATCH] [X86] Add fptosi test to fp-intrinsics.ll --- llvm/test/CodeGen/X86/fp-intrinsics.ll | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/llvm/test/CodeGen/X86/fp-intrinsics.ll b/llvm/test/CodeGen/X86/fp-intrinsics.ll index 0ce21d7..7d5a04d 100644 --- a/llvm/test/CodeGen/X86/fp-intrinsics.ll +++ b/llvm/test/CodeGen/X86/fp-intrinsics.ll @@ -400,6 +400,25 @@ entry: ret double %rem } +; Verify that fptosi(%x) isn't simplified when the rounding mode is +; unknown. The expansion should have only one conversion instruction. +; Verify that no gross errors happen. +define i32 @f20s(double %x) #0 { +; SSE-LABEL: f20s: +; SSE: # %bb.0: # %entry +; SSE-NEXT: cvttsd2si %xmm0, %eax +; SSE-NEXT: retq +; +; AVX-LABEL: f20s: +; AVX: # %bb.0: # %entry +; AVX-NEXT: vcvttsd2si %xmm0, %eax +; AVX-NEXT: retq +entry: + %result = call i32 @llvm.experimental.constrained.fptosi.i32.f64(double %x, + metadata !"fpexcept.strict") #0 + ret i32 %result +} + ; Verify that fptoui(%x) isn't simplified when the rounding mode is ; unknown. The expansion should have only one conversion instruction. ; Verify that no gross errors happen. -- 2.7.4