@@ -2110,6 +2110,51 @@ entry:
2110
2110
ret ppc_fp128 %tan
2111
2111
}
2112
2112
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
+
2113
2158
attributes #0 = { nounwind strictfp }
2114
2159
attributes #1 = { strictfp }
2115
2160
@@ -2141,6 +2186,7 @@ declare ppc_fp128 @llvm.experimental.constrained.sin.ppcf128(ppc_fp128, metadata
2141
2186
declare ppc_fp128 @llvm.experimental.constrained.sqrt.ppcf128 (ppc_fp128 , metadata , metadata )
2142
2187
declare ppc_fp128 @llvm.experimental.constrained.fsub.ppcf128 (ppc_fp128 , ppc_fp128 , metadata , metadata )
2143
2188
declare 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 )
2144
2190
declare ppc_fp128 @llvm.experimental.constrained.trunc.ppcf128 (ppc_fp128 , metadata )
2145
2191
declare i64 @llvm.experimental.constrained.fptosi.i64.ppcf128 (ppc_fp128 , metadata )
2146
2192
declare i32 @llvm.experimental.constrained.fptosi.i32.ppcf128 (ppc_fp128 , metadata )
0 commit comments