diff options
| author | Craig Topper <craig.topper@intel.com> | 2019-02-05 04:48:23 +0000 | 
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2019-02-05 04:48:23 +0000 | 
| commit | 31259c52ff76d16d758e6234ea2ac4778a0e59f3 (patch) | |
| tree | fa7712c096fc103a2be99236b764ce8293a8846a | |
| parent | 3ad50fed488b52e93aee5ce5607055aa77207c14 (diff) | |
| download | bcm5719-llvm-31259c52ff76d16d758e6234ea2ac4778a0e59f3.tar.gz bcm5719-llvm-31259c52ff76d16d758e6234ea2ac4778a0e59f3.zip  | |
[X86] Add test case from PR40529. NFC
llvm-svn: 353138
| -rw-r--r-- | llvm/test/CodeGen/X86/pr40529.ll | 43 | 
1 files changed, 43 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/pr40529.ll b/llvm/test/CodeGen/X86/pr40529.ll new file mode 100644 index 00000000000..14ae6375d8b --- /dev/null +++ b/llvm/test/CodeGen/X86/pr40529.ll @@ -0,0 +1,43 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc < %s -mtriple=x86_64-unknown-linux | FileCheck %s + +define x86_fp80 @rem_pio2l_min(x86_fp80 %z) { +; CHECK-LABEL: rem_pio2l_min: +; CHECK:       # %bb.0: # %entry +; CHECK-NEXT:    fldt {{[0-9]+}}(%rsp) +; CHECK-NEXT:    fnstcw -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    movzwl -{{[0-9]+}}(%rsp), %eax +; CHECK-NEXT:    movw $3199, -{{[0-9]+}}(%rsp) # imm = 0xC7F +; CHECK-NEXT:    fldcw -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    movw %ax, -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    fistl -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    fldcw -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    movl -{{[0-9]+}}(%rsp), %eax +; CHECK-NEXT:    movl %eax, -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    fisubl -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    flds {{.*}}(%rip) +; CHECK-NEXT:    fmul %st, %st(1) +; CHECK-NEXT:    fnstcw -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    movzwl -{{[0-9]+}}(%rsp), %eax +; CHECK-NEXT:    movw $3199, -{{[0-9]+}}(%rsp) # imm = 0xC7F +; CHECK-NEXT:    fldcw -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    movw %ax, -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    fxch %st(1) +; CHECK-NEXT:    fistl -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    fldcw -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    movl -{{[0-9]+}}(%rsp), %eax +; CHECK-NEXT:    movl %eax, -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    fisubl -{{[0-9]+}}(%rsp) +; CHECK-NEXT:    fmulp %st, %st(1) +; CHECK-NEXT:    retq +entry: +  %conv = fptosi x86_fp80 %z to i32 +  %conv1 = sitofp i32 %conv to x86_fp80 +  %sub = fsub x86_fp80 %z, %conv1 +  %mul = fmul x86_fp80 %sub, 0xK40178000000000000000 +  %conv2 = fptosi x86_fp80 %mul to i32 +  %conv3 = sitofp i32 %conv2 to x86_fp80 +  %sub4 = fsub x86_fp80 %mul, %conv3 +  %mul5 = fmul x86_fp80 %sub4, 0xK40178000000000000000 +  ret x86_fp80 %mul5 +}  | 

