mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-13 14:46:53 +00:00
[Sparc][LEON] Test for FixFDIVSQRT erratum fix.
Note: Test is per differential review, but the other changed code in the review was for an optimisation that din't quite work. Nevertheless, the test is valid for the unoptimised version of the fix. Differential Review: https://reviews.llvm.org/D24658 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285692 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9b12d6a515
commit
447ffef48b
59
test/CodeGen/SPARC/LeonFixAllFDIVSQRTPassUT.ll
Executable file
59
test/CodeGen/SPARC/LeonFixAllFDIVSQRTPassUT.ll
Executable file
@ -0,0 +1,59 @@
|
||||
; RUN: llc %s -O0 -march=sparc -mcpu=leon3 -mattr=+fixallfdivsqrt -o - | FileCheck %s
|
||||
; RUN: llc %s -O0 -march=sparc -mcpu=ut699 -o - | FileCheck %s
|
||||
|
||||
; CHECK-LABEL: test_1
|
||||
; CHECK: nop
|
||||
; CHECK: nop
|
||||
; CHECK: fdivd
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
define double @test_1(double* byval %a, double* byval %b) {
|
||||
entry:
|
||||
%0 = load double, double* %a, align 8
|
||||
%1 = load double, double* %b, align 8
|
||||
%res = fdiv double %0, %1
|
||||
ret double %res
|
||||
}
|
||||
|
||||
declare double @llvm.sqrt.f64(double) nounwind readonly
|
||||
|
||||
; CHECK-LABEL: test_2
|
||||
; CHECK: nop
|
||||
; CHECK: nop
|
||||
; CHECK: nop
|
||||
; CHECK: nop
|
||||
; CHECK: nop
|
||||
; CHECK: fsqrtd
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
; CHECK-NEXT: nop
|
||||
define double @test_2(double* byval %a) {
|
||||
entry:
|
||||
%0 = load double, double* %a, align 8
|
||||
%1 = call double @llvm.sqrt.f64(double %0) nounwind
|
||||
ret double %1
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user