diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 6dbda50a28..82c9aa272b 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -1879,6 +1879,17 @@ cacosh -0x1p-112 -0.0
 cacosh 0.75 1.25
 cacosh -2 -3
 
+carg inf 2.0
+carg inf -2.0
+carg 10 inf
+carg 10 -inf
+carg -inf 10
+carg -inf -10
+carg inf inf
+carg inf -inf
+carg -inf inf
+carg -inf -inf
+
 # carg (x + i 0) == 0 for x > 0.
 carg 2.0 0
 # carg (x - i 0) == -0 for x > 0.
diff --git a/math/auto-libm-test-out-carg b/math/auto-libm-test-out-carg
index cf5530b068..1ec9956d76 100644
--- a/math/auto-libm-test-out-carg
+++ b/math/auto-libm-test-out-carg
@@ -1,3 +1,253 @@
+carg inf 2.0
+= carg downward binary32 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg tonearest binary32 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg towardzero binary32 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg upward binary32 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg downward binary64 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg tonearest binary64 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg towardzero binary64 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg upward binary64 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg downward intel96 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg tonearest intel96 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg towardzero intel96 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg upward intel96 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg downward m68k96 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg tonearest m68k96 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg towardzero m68k96 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg upward m68k96 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg downward binary128 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg tonearest binary128 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg towardzero binary128 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg upward binary128 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg downward ibm128 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg tonearest ibm128 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg towardzero ibm128 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+= carg upward ibm128 plus_infty 0x2p+0 : 0x0p+0 : inexact-ok
+carg inf -2.0
+= carg downward binary32 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg tonearest binary32 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg towardzero binary32 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg upward binary32 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg downward binary64 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg tonearest binary64 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg towardzero binary64 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg upward binary64 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg downward intel96 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg tonearest intel96 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg towardzero intel96 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg upward intel96 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg downward m68k96 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg tonearest m68k96 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg towardzero m68k96 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg upward m68k96 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg downward binary128 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg tonearest binary128 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg towardzero binary128 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg upward binary128 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg downward ibm128 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg tonearest ibm128 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg towardzero ibm128 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+= carg upward ibm128 plus_infty -0x2p+0 : -0x0p+0 : inexact-ok
+carg 10 inf
+= carg downward binary32 0xap+0 plus_infty : 0x1.921fb4p+0 : inexact-ok
+= carg tonearest binary32 0xap+0 plus_infty : 0x1.921fb6p+0 : inexact-ok
+= carg towardzero binary32 0xap+0 plus_infty : 0x1.921fb4p+0 : inexact-ok
+= carg upward binary32 0xap+0 plus_infty : 0x1.921fb6p+0 : inexact-ok
+= carg downward binary64 0xap+0 plus_infty : 0x1.921fb54442d18p+0 : inexact-ok
+= carg tonearest binary64 0xap+0 plus_infty : 0x1.921fb54442d18p+0 : inexact-ok
+= carg towardzero binary64 0xap+0 plus_infty : 0x1.921fb54442d18p+0 : inexact-ok
+= carg upward binary64 0xap+0 plus_infty : 0x1.921fb54442d19p+0 : inexact-ok
+= carg downward intel96 0xap+0 plus_infty : 0x1.921fb54442d18468p+0 : inexact-ok
+= carg tonearest intel96 0xap+0 plus_infty : 0x1.921fb54442d1846ap+0 : inexact-ok
+= carg towardzero intel96 0xap+0 plus_infty : 0x1.921fb54442d18468p+0 : inexact-ok
+= carg upward intel96 0xap+0 plus_infty : 0x1.921fb54442d1846ap+0 : inexact-ok
+= carg downward m68k96 0xap+0 plus_infty : 0x1.921fb54442d18468p+0 : inexact-ok
+= carg tonearest m68k96 0xap+0 plus_infty : 0x1.921fb54442d1846ap+0 : inexact-ok
+= carg towardzero m68k96 0xap+0 plus_infty : 0x1.921fb54442d18468p+0 : inexact-ok
+= carg upward m68k96 0xap+0 plus_infty : 0x1.921fb54442d1846ap+0 : inexact-ok
+= carg downward binary128 0xap+0 plus_infty : 0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= carg tonearest binary128 0xap+0 plus_infty : 0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= carg towardzero binary128 0xap+0 plus_infty : 0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= carg upward binary128 0xap+0 plus_infty : 0x1.921fb54442d18469898cc51701b9p+0 : inexact-ok
+= carg downward ibm128 0xap+0 plus_infty : 0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= carg tonearest ibm128 0xap+0 plus_infty : 0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= carg towardzero ibm128 0xap+0 plus_infty : 0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= carg upward ibm128 0xap+0 plus_infty : 0x1.921fb54442d18469898cc51702p+0 : inexact-ok
+carg 10 -inf
+= carg downward binary32 0xap+0 minus_infty : -0x1.921fb6p+0 : inexact-ok
+= carg tonearest binary32 0xap+0 minus_infty : -0x1.921fb6p+0 : inexact-ok
+= carg towardzero binary32 0xap+0 minus_infty : -0x1.921fb4p+0 : inexact-ok
+= carg upward binary32 0xap+0 minus_infty : -0x1.921fb4p+0 : inexact-ok
+= carg downward binary64 0xap+0 minus_infty : -0x1.921fb54442d19p+0 : inexact-ok
+= carg tonearest binary64 0xap+0 minus_infty : -0x1.921fb54442d18p+0 : inexact-ok
+= carg towardzero binary64 0xap+0 minus_infty : -0x1.921fb54442d18p+0 : inexact-ok
+= carg upward binary64 0xap+0 minus_infty : -0x1.921fb54442d18p+0 : inexact-ok
+= carg downward intel96 0xap+0 minus_infty : -0x1.921fb54442d1846ap+0 : inexact-ok
+= carg tonearest intel96 0xap+0 minus_infty : -0x1.921fb54442d1846ap+0 : inexact-ok
+= carg towardzero intel96 0xap+0 minus_infty : -0x1.921fb54442d18468p+0 : inexact-ok
+= carg upward intel96 0xap+0 minus_infty : -0x1.921fb54442d18468p+0 : inexact-ok
+= carg downward m68k96 0xap+0 minus_infty : -0x1.921fb54442d1846ap+0 : inexact-ok
+= carg tonearest m68k96 0xap+0 minus_infty : -0x1.921fb54442d1846ap+0 : inexact-ok
+= carg towardzero m68k96 0xap+0 minus_infty : -0x1.921fb54442d18468p+0 : inexact-ok
+= carg upward m68k96 0xap+0 minus_infty : -0x1.921fb54442d18468p+0 : inexact-ok
+= carg downward binary128 0xap+0 minus_infty : -0x1.921fb54442d18469898cc51701b9p+0 : inexact-ok
+= carg tonearest binary128 0xap+0 minus_infty : -0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= carg towardzero binary128 0xap+0 minus_infty : -0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= carg upward binary128 0xap+0 minus_infty : -0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= carg downward ibm128 0xap+0 minus_infty : -0x1.921fb54442d18469898cc51702p+0 : inexact-ok
+= carg tonearest ibm128 0xap+0 minus_infty : -0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= carg towardzero ibm128 0xap+0 minus_infty : -0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= carg upward ibm128 0xap+0 minus_infty : -0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+carg -inf 10
+= carg downward binary32 minus_infty 0xap+0 : 0x3.243f68p+0 : inexact-ok
+= carg tonearest binary32 minus_infty 0xap+0 : 0x3.243f6cp+0 : inexact-ok
+= carg towardzero binary32 minus_infty 0xap+0 : 0x3.243f68p+0 : inexact-ok
+= carg upward binary32 minus_infty 0xap+0 : 0x3.243f6cp+0 : inexact-ok
+= carg downward binary64 minus_infty 0xap+0 : 0x3.243f6a8885a3p+0 : inexact-ok
+= carg tonearest binary64 minus_infty 0xap+0 : 0x3.243f6a8885a3p+0 : inexact-ok
+= carg towardzero binary64 minus_infty 0xap+0 : 0x3.243f6a8885a3p+0 : inexact-ok
+= carg upward binary64 minus_infty 0xap+0 : 0x3.243f6a8885a32p+0 : inexact-ok
+= carg downward intel96 minus_infty 0xap+0 : 0x3.243f6a8885a308dp+0 : inexact-ok
+= carg tonearest intel96 minus_infty 0xap+0 : 0x3.243f6a8885a308d4p+0 : inexact-ok
+= carg towardzero intel96 minus_infty 0xap+0 : 0x3.243f6a8885a308dp+0 : inexact-ok
+= carg upward intel96 minus_infty 0xap+0 : 0x3.243f6a8885a308d4p+0 : inexact-ok
+= carg downward m68k96 minus_infty 0xap+0 : 0x3.243f6a8885a308dp+0 : inexact-ok
+= carg tonearest m68k96 minus_infty 0xap+0 : 0x3.243f6a8885a308d4p+0 : inexact-ok
+= carg towardzero m68k96 minus_infty 0xap+0 : 0x3.243f6a8885a308dp+0 : inexact-ok
+= carg upward m68k96 minus_infty 0xap+0 : 0x3.243f6a8885a308d4p+0 : inexact-ok
+= carg downward binary128 minus_infty 0xap+0 : 0x3.243f6a8885a308d313198a2e037p+0 : inexact-ok
+= carg tonearest binary128 minus_infty 0xap+0 : 0x3.243f6a8885a308d313198a2e037p+0 : inexact-ok
+= carg towardzero binary128 minus_infty 0xap+0 : 0x3.243f6a8885a308d313198a2e037p+0 : inexact-ok
+= carg upward binary128 minus_infty 0xap+0 : 0x3.243f6a8885a308d313198a2e0372p+0 : inexact-ok
+= carg downward ibm128 minus_infty 0xap+0 : 0x3.243f6a8885a308d313198a2e03p+0 : inexact-ok
+= carg tonearest ibm128 minus_infty 0xap+0 : 0x3.243f6a8885a308d313198a2e03p+0 : inexact-ok
+= carg towardzero ibm128 minus_infty 0xap+0 : 0x3.243f6a8885a308d313198a2e03p+0 : inexact-ok
+= carg upward ibm128 minus_infty 0xap+0 : 0x3.243f6a8885a308d313198a2e04p+0 : inexact-ok
+carg -inf -10
+= carg downward binary32 minus_infty -0xap+0 : -0x3.243f6cp+0 : inexact-ok
+= carg tonearest binary32 minus_infty -0xap+0 : -0x3.243f6cp+0 : inexact-ok
+= carg towardzero binary32 minus_infty -0xap+0 : -0x3.243f68p+0 : inexact-ok
+= carg upward binary32 minus_infty -0xap+0 : -0x3.243f68p+0 : inexact-ok
+= carg downward binary64 minus_infty -0xap+0 : -0x3.243f6a8885a32p+0 : inexact-ok
+= carg tonearest binary64 minus_infty -0xap+0 : -0x3.243f6a8885a3p+0 : inexact-ok
+= carg towardzero binary64 minus_infty -0xap+0 : -0x3.243f6a8885a3p+0 : inexact-ok
+= carg upward binary64 minus_infty -0xap+0 : -0x3.243f6a8885a3p+0 : inexact-ok
+= carg downward intel96 minus_infty -0xap+0 : -0x3.243f6a8885a308d4p+0 : inexact-ok
+= carg tonearest intel96 minus_infty -0xap+0 : -0x3.243f6a8885a308d4p+0 : inexact-ok
+= carg towardzero intel96 minus_infty -0xap+0 : -0x3.243f6a8885a308dp+0 : inexact-ok
+= carg upward intel96 minus_infty -0xap+0 : -0x3.243f6a8885a308dp+0 : inexact-ok
+= carg downward m68k96 minus_infty -0xap+0 : -0x3.243f6a8885a308d4p+0 : inexact-ok
+= carg tonearest m68k96 minus_infty -0xap+0 : -0x3.243f6a8885a308d4p+0 : inexact-ok
+= carg towardzero m68k96 minus_infty -0xap+0 : -0x3.243f6a8885a308dp+0 : inexact-ok
+= carg upward m68k96 minus_infty -0xap+0 : -0x3.243f6a8885a308dp+0 : inexact-ok
+= carg downward binary128 minus_infty -0xap+0 : -0x3.243f6a8885a308d313198a2e0372p+0 : inexact-ok
+= carg tonearest binary128 minus_infty -0xap+0 : -0x3.243f6a8885a308d313198a2e037p+0 : inexact-ok
+= carg towardzero binary128 minus_infty -0xap+0 : -0x3.243f6a8885a308d313198a2e037p+0 : inexact-ok
+= carg upward binary128 minus_infty -0xap+0 : -0x3.243f6a8885a308d313198a2e037p+0 : inexact-ok
+= carg downward ibm128 minus_infty -0xap+0 : -0x3.243f6a8885a308d313198a2e04p+0 : inexact-ok
+= carg tonearest ibm128 minus_infty -0xap+0 : -0x3.243f6a8885a308d313198a2e03p+0 : inexact-ok
+= carg towardzero ibm128 minus_infty -0xap+0 : -0x3.243f6a8885a308d313198a2e03p+0 : inexact-ok
+= carg upward ibm128 minus_infty -0xap+0 : -0x3.243f6a8885a308d313198a2e03p+0 : inexact-ok
+carg inf inf
+= carg downward binary32 plus_infty plus_infty : 0xc.90fdap-4 : inexact-ok
+= carg tonearest binary32 plus_infty plus_infty : 0xc.90fdbp-4 : inexact-ok
+= carg towardzero binary32 plus_infty plus_infty : 0xc.90fdap-4 : inexact-ok
+= carg upward binary32 plus_infty plus_infty : 0xc.90fdbp-4 : inexact-ok
+= carg downward binary64 plus_infty plus_infty : 0xc.90fdaa22168cp-4 : inexact-ok
+= carg tonearest binary64 plus_infty plus_infty : 0xc.90fdaa22168cp-4 : inexact-ok
+= carg towardzero binary64 plus_infty plus_infty : 0xc.90fdaa22168cp-4 : inexact-ok
+= carg upward binary64 plus_infty plus_infty : 0xc.90fdaa22168c8p-4 : inexact-ok
+= carg downward intel96 plus_infty plus_infty : 0xc.90fdaa22168c234p-4 : inexact-ok
+= carg tonearest intel96 plus_infty plus_infty : 0xc.90fdaa22168c235p-4 : inexact-ok
+= carg towardzero intel96 plus_infty plus_infty : 0xc.90fdaa22168c234p-4 : inexact-ok
+= carg upward intel96 plus_infty plus_infty : 0xc.90fdaa22168c235p-4 : inexact-ok
+= carg downward m68k96 plus_infty plus_infty : 0xc.90fdaa22168c234p-4 : inexact-ok
+= carg tonearest m68k96 plus_infty plus_infty : 0xc.90fdaa22168c235p-4 : inexact-ok
+= carg towardzero m68k96 plus_infty plus_infty : 0xc.90fdaa22168c234p-4 : inexact-ok
+= carg upward m68k96 plus_infty plus_infty : 0xc.90fdaa22168c235p-4 : inexact-ok
+= carg downward binary128 plus_infty plus_infty : 0xc.90fdaa22168c234c4c6628b80dcp-4 : inexact-ok
+= carg tonearest binary128 plus_infty plus_infty : 0xc.90fdaa22168c234c4c6628b80dcp-4 : inexact-ok
+= carg towardzero binary128 plus_infty plus_infty : 0xc.90fdaa22168c234c4c6628b80dcp-4 : inexact-ok
+= carg upward binary128 plus_infty plus_infty : 0xc.90fdaa22168c234c4c6628b80dc8p-4 : inexact-ok
+= carg downward ibm128 plus_infty plus_infty : 0xc.90fdaa22168c234c4c6628b80cp-4 : inexact-ok
+= carg tonearest ibm128 plus_infty plus_infty : 0xc.90fdaa22168c234c4c6628b80cp-4 : inexact-ok
+= carg towardzero ibm128 plus_infty plus_infty : 0xc.90fdaa22168c234c4c6628b80cp-4 : inexact-ok
+= carg upward ibm128 plus_infty plus_infty : 0xc.90fdaa22168c234c4c6628b81p-4 : inexact-ok
+carg inf -inf
+= carg downward binary32 plus_infty minus_infty : -0xc.90fdbp-4 : inexact-ok
+= carg tonearest binary32 plus_infty minus_infty : -0xc.90fdbp-4 : inexact-ok
+= carg towardzero binary32 plus_infty minus_infty : -0xc.90fdap-4 : inexact-ok
+= carg upward binary32 plus_infty minus_infty : -0xc.90fdap-4 : inexact-ok
+= carg downward binary64 plus_infty minus_infty : -0xc.90fdaa22168c8p-4 : inexact-ok
+= carg tonearest binary64 plus_infty minus_infty : -0xc.90fdaa22168cp-4 : inexact-ok
+= carg towardzero binary64 plus_infty minus_infty : -0xc.90fdaa22168cp-4 : inexact-ok
+= carg upward binary64 plus_infty minus_infty : -0xc.90fdaa22168cp-4 : inexact-ok
+= carg downward intel96 plus_infty minus_infty : -0xc.90fdaa22168c235p-4 : inexact-ok
+= carg tonearest intel96 plus_infty minus_infty : -0xc.90fdaa22168c235p-4 : inexact-ok
+= carg towardzero intel96 plus_infty minus_infty : -0xc.90fdaa22168c234p-4 : inexact-ok
+= carg upward intel96 plus_infty minus_infty : -0xc.90fdaa22168c234p-4 : inexact-ok
+= carg downward m68k96 plus_infty minus_infty : -0xc.90fdaa22168c235p-4 : inexact-ok
+= carg tonearest m68k96 plus_infty minus_infty : -0xc.90fdaa22168c235p-4 : inexact-ok
+= carg towardzero m68k96 plus_infty minus_infty : -0xc.90fdaa22168c234p-4 : inexact-ok
+= carg upward m68k96 plus_infty minus_infty : -0xc.90fdaa22168c234p-4 : inexact-ok
+= carg downward binary128 plus_infty minus_infty : -0xc.90fdaa22168c234c4c6628b80dc8p-4 : inexact-ok
+= carg tonearest binary128 plus_infty minus_infty : -0xc.90fdaa22168c234c4c6628b80dcp-4 : inexact-ok
+= carg towardzero binary128 plus_infty minus_infty : -0xc.90fdaa22168c234c4c6628b80dcp-4 : inexact-ok
+= carg upward binary128 plus_infty minus_infty : -0xc.90fdaa22168c234c4c6628b80dcp-4 : inexact-ok
+= carg downward ibm128 plus_infty minus_infty : -0xc.90fdaa22168c234c4c6628b81p-4 : inexact-ok
+= carg tonearest ibm128 plus_infty minus_infty : -0xc.90fdaa22168c234c4c6628b80cp-4 : inexact-ok
+= carg towardzero ibm128 plus_infty minus_infty : -0xc.90fdaa22168c234c4c6628b80cp-4 : inexact-ok
+= carg upward ibm128 plus_infty minus_infty : -0xc.90fdaa22168c234c4c6628b80cp-4 : inexact-ok
+carg -inf inf
+= carg downward binary32 minus_infty plus_infty : 0x2.5b2f8cp+0 : inexact-ok
+= carg tonearest binary32 minus_infty plus_infty : 0x2.5b2f9p+0 : inexact-ok
+= carg towardzero binary32 minus_infty plus_infty : 0x2.5b2f8cp+0 : inexact-ok
+= carg upward binary32 minus_infty plus_infty : 0x2.5b2f9p+0 : inexact-ok
+= carg downward binary64 minus_infty plus_infty : 0x2.5b2f8fe6643a4p+0 : inexact-ok
+= carg tonearest binary64 minus_infty plus_infty : 0x2.5b2f8fe6643a4p+0 : inexact-ok
+= carg towardzero binary64 minus_infty plus_infty : 0x2.5b2f8fe6643a4p+0 : inexact-ok
+= carg upward binary64 minus_infty plus_infty : 0x2.5b2f8fe6643a6p+0 : inexact-ok
+= carg downward intel96 minus_infty plus_infty : 0x2.5b2f8fe6643a469cp+0 : inexact-ok
+= carg tonearest intel96 minus_infty plus_infty : 0x2.5b2f8fe6643a46ap+0 : inexact-ok
+= carg towardzero intel96 minus_infty plus_infty : 0x2.5b2f8fe6643a469cp+0 : inexact-ok
+= carg upward intel96 minus_infty plus_infty : 0x2.5b2f8fe6643a46ap+0 : inexact-ok
+= carg downward m68k96 minus_infty plus_infty : 0x2.5b2f8fe6643a469cp+0 : inexact-ok
+= carg tonearest m68k96 minus_infty plus_infty : 0x2.5b2f8fe6643a46ap+0 : inexact-ok
+= carg towardzero m68k96 minus_infty plus_infty : 0x2.5b2f8fe6643a469cp+0 : inexact-ok
+= carg upward m68k96 minus_infty plus_infty : 0x2.5b2f8fe6643a46ap+0 : inexact-ok
+= carg downward binary128 minus_infty plus_infty : 0x2.5b2f8fe6643a469e4e5327a28294p+0 : inexact-ok
+= carg tonearest binary128 minus_infty plus_infty : 0x2.5b2f8fe6643a469e4e5327a28294p+0 : inexact-ok
+= carg towardzero binary128 minus_infty plus_infty : 0x2.5b2f8fe6643a469e4e5327a28294p+0 : inexact-ok
+= carg upward binary128 minus_infty plus_infty : 0x2.5b2f8fe6643a469e4e5327a28296p+0 : inexact-ok
+= carg downward ibm128 minus_infty plus_infty : 0x2.5b2f8fe6643a469e4e5327a282p+0 : inexact-ok
+= carg tonearest ibm128 minus_infty plus_infty : 0x2.5b2f8fe6643a469e4e5327a283p+0 : inexact-ok
+= carg towardzero ibm128 minus_infty plus_infty : 0x2.5b2f8fe6643a469e4e5327a282p+0 : inexact-ok
+= carg upward ibm128 minus_infty plus_infty : 0x2.5b2f8fe6643a469e4e5327a283p+0 : inexact-ok
+carg -inf -inf
+= carg downward binary32 minus_infty minus_infty : -0x2.5b2f9p+0 : inexact-ok
+= carg tonearest binary32 minus_infty minus_infty : -0x2.5b2f9p+0 : inexact-ok
+= carg towardzero binary32 minus_infty minus_infty : -0x2.5b2f8cp+0 : inexact-ok
+= carg upward binary32 minus_infty minus_infty : -0x2.5b2f8cp+0 : inexact-ok
+= carg downward binary64 minus_infty minus_infty : -0x2.5b2f8fe6643a6p+0 : inexact-ok
+= carg tonearest binary64 minus_infty minus_infty : -0x2.5b2f8fe6643a4p+0 : inexact-ok
+= carg towardzero binary64 minus_infty minus_infty : -0x2.5b2f8fe6643a4p+0 : inexact-ok
+= carg upward binary64 minus_infty minus_infty : -0x2.5b2f8fe6643a4p+0 : inexact-ok
+= carg downward intel96 minus_infty minus_infty : -0x2.5b2f8fe6643a46ap+0 : inexact-ok
+= carg tonearest intel96 minus_infty minus_infty : -0x2.5b2f8fe6643a46ap+0 : inexact-ok
+= carg towardzero intel96 minus_infty minus_infty : -0x2.5b2f8fe6643a469cp+0 : inexact-ok
+= carg upward intel96 minus_infty minus_infty : -0x2.5b2f8fe6643a469cp+0 : inexact-ok
+= carg downward m68k96 minus_infty minus_infty : -0x2.5b2f8fe6643a46ap+0 : inexact-ok
+= carg tonearest m68k96 minus_infty minus_infty : -0x2.5b2f8fe6643a46ap+0 : inexact-ok
+= carg towardzero m68k96 minus_infty minus_infty : -0x2.5b2f8fe6643a469cp+0 : inexact-ok
+= carg upward m68k96 minus_infty minus_infty : -0x2.5b2f8fe6643a469cp+0 : inexact-ok
+= carg downward binary128 minus_infty minus_infty : -0x2.5b2f8fe6643a469e4e5327a28296p+0 : inexact-ok
+= carg tonearest binary128 minus_infty minus_infty : -0x2.5b2f8fe6643a469e4e5327a28294p+0 : inexact-ok
+= carg towardzero binary128 minus_infty minus_infty : -0x2.5b2f8fe6643a469e4e5327a28294p+0 : inexact-ok
+= carg upward binary128 minus_infty minus_infty : -0x2.5b2f8fe6643a469e4e5327a28294p+0 : inexact-ok
+= carg downward ibm128 minus_infty minus_infty : -0x2.5b2f8fe6643a469e4e5327a283p+0 : inexact-ok
+= carg tonearest ibm128 minus_infty minus_infty : -0x2.5b2f8fe6643a469e4e5327a283p+0 : inexact-ok
+= carg towardzero ibm128 minus_infty minus_infty : -0x2.5b2f8fe6643a469e4e5327a282p+0 : inexact-ok
+= carg upward ibm128 minus_infty minus_infty : -0x2.5b2f8fe6643a469e4e5327a282p+0 : inexact-ok
 carg 2.0 0
 = carg downward binary32 0x2p+0 0x0p+0 : 0x0p+0 : inexact-ok
 = carg tonearest binary32 0x2p+0 0x0p+0 : 0x0p+0 : inexact-ok
diff --git a/math/libm-test-carg.inc b/math/libm-test-carg.inc
index 520e4c42ef..61684c6dcd 100644
--- a/math/libm-test-carg.inc
+++ b/math/libm-test-carg.inc
@@ -20,34 +20,6 @@
 
 static const struct test_c_f_data carg_test_data[] =
   {
-    /* carg (x + iy) is specified as atan2 (y, x) */
-
-    /* carg (inf + i y) == +0 for finite y > 0.  */
-    TEST_c_f (carg, plus_infty, 2.0, 0),
-
-    /* carg (inf + i y) == -0 for finite y < 0.  */
-    TEST_c_f (carg, plus_infty, -2.0, minus_zero),
-
-    /* carg(x + i inf) == pi/2 for finite x.  */
-    TEST_c_f (carg, 10.0, plus_infty, lit_pi_2_d),
-
-    /* carg(x - i inf) == -pi/2 for finite x.  */
-    TEST_c_f (carg, 10.0, minus_infty, -lit_pi_2_d),
-
-    /* carg (-inf + i y) == +pi for finite y > 0.  */
-    TEST_c_f (carg, minus_infty, 10.0, lit_pi),
-
-    /* carg (-inf + i y) == -pi for finite y < 0.  */
-    TEST_c_f (carg, minus_infty, -10.0, -lit_pi),
-
-    TEST_c_f (carg, plus_infty, plus_infty, lit_pi_4_d),
-
-    TEST_c_f (carg, plus_infty, minus_infty, -lit_pi_4_d),
-
-    TEST_c_f (carg, minus_infty, plus_infty, lit_pi_3_m_4_d),
-
-    TEST_c_f (carg, minus_infty, minus_infty, -lit_pi_3_m_4_d),
-
     TEST_c_f (carg, qnan_value, qnan_value, qnan_value),
 
     AUTO_TESTS_c_f (carg),
