@@ -2110,6 +2110,51 @@ entry:
21102110 ret ppc_fp128 %tan
21112111}
21122112
2113+ define ppc_fp128 @test_atan2_ppc_fp128 (ppc_fp128 %first , ppc_fp128 %second ) #0 {
2114+ ; PC64LE-LABEL: test_atan2_ppc_fp128:
2115+ ; PC64LE: # %bb.0: # %entry
2116+ ; PC64LE-NEXT: mflr 0
2117+ ; PC64LE-NEXT: stdu 1, -32(1)
2118+ ; PC64LE-NEXT: std 0, 48(1)
2119+ ; PC64LE-NEXT: bl atan2l
2120+ ; PC64LE-NEXT: nop
2121+ ; PC64LE-NEXT: addi 1, 1, 32
2122+ ; PC64LE-NEXT: ld 0, 16(1)
2123+ ; PC64LE-NEXT: mtlr 0
2124+ ; PC64LE-NEXT: blr
2125+ ;
2126+ ; PC64LE9-LABEL: test_atan2_ppc_fp128:
2127+ ; PC64LE9: # %bb.0: # %entry
2128+ ; PC64LE9-NEXT: mflr 0
2129+ ; PC64LE9-NEXT: stdu 1, -32(1)
2130+ ; PC64LE9-NEXT: std 0, 48(1)
2131+ ; PC64LE9-NEXT: bl atan2l
2132+ ; PC64LE9-NEXT: nop
2133+ ; PC64LE9-NEXT: addi 1, 1, 32
2134+ ; PC64LE9-NEXT: ld 0, 16(1)
2135+ ; PC64LE9-NEXT: mtlr 0
2136+ ; PC64LE9-NEXT: blr
2137+ ;
2138+ ; PC64-LABEL: test_atan2_ppc_fp128:
2139+ ; PC64: # %bb.0: # %entry
2140+ ; PC64-NEXT: mflr 0
2141+ ; PC64-NEXT: stdu 1, -112(1)
2142+ ; PC64-NEXT: std 0, 128(1)
2143+ ; PC64-NEXT: bl atan2l
2144+ ; PC64-NEXT: nop
2145+ ; PC64-NEXT: addi 1, 1, 112
2146+ ; PC64-NEXT: ld 0, 16(1)
2147+ ; PC64-NEXT: mtlr 0
2148+ ; PC64-NEXT: blr
2149+ entry:
2150+ %atan2 = call ppc_fp128 @llvm.experimental.constrained.atan2.ppcf128 (
2151+ ppc_fp128 %first ,
2152+ ppc_fp128 %second ,
2153+ metadata !"round.dynamic" ,
2154+ metadata !"fpexcept.strict" ) #1
2155+ ret ppc_fp128 %atan2
2156+ }
2157+
21132158attributes #0 = { nounwind strictfp }
21142159attributes #1 = { strictfp }
21152160
@@ -2141,6 +2186,7 @@ declare ppc_fp128 @llvm.experimental.constrained.sin.ppcf128(ppc_fp128, metadata
21412186declare ppc_fp128 @llvm.experimental.constrained.sqrt.ppcf128 (ppc_fp128 , metadata , metadata )
21422187declare ppc_fp128 @llvm.experimental.constrained.fsub.ppcf128 (ppc_fp128 , ppc_fp128 , metadata , metadata )
21432188declare ppc_fp128 @llvm.experimental.constrained.tan.ppcf128 (ppc_fp128 , metadata , metadata )
2189+ declare ppc_fp128 @llvm.experimental.constrained.atan2.ppcf128 (ppc_fp128 , ppc_fp128 , metadata , metadata )
21442190declare ppc_fp128 @llvm.experimental.constrained.trunc.ppcf128 (ppc_fp128 , metadata )
21452191declare i64 @llvm.experimental.constrained.fptosi.i64.ppcf128 (ppc_fp128 , metadata )
21462192declare i32 @llvm.experimental.constrained.fptosi.i32.ppcf128 (ppc_fp128 , metadata )
0 commit comments