1799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar//===-- aeabi_drsub.c - Test __aeabi_drsub --------------------------------===// 2799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar// 3799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar// The LLVM Compiler Infrastructure 4799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar// 5799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar// This file is dual licensed under the MIT and the University of Illinois Open 6799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar// Source Licenses. See LICENSE.TXT for details. 7799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar// 8799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar//===----------------------------------------------------------------------===// 9799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar// 10799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar// This file tests __aeabi_drsub for the compiler_rt library. 11799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar// 12799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar//===----------------------------------------------------------------------===// 13799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar 14799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar#include <stdio.h> 15799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar#include <stdlib.h> 16799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar#include <math.h> 17799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar 18799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar 19799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar#if __arm__ 20799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainarextern __attribute__((pcs("aapcs"))) double __aeabi_drsub(double a, double b); 21799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar 22799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainarint test__aeabi_drsub(double a, double b, double expected) 23799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar{ 24799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar double actual = __aeabi_drsub(a, b); 25799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar if (actual != expected) 26799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar printf("error in __aeabi_drsub(%f, %f) = %f, expected %f\n", 27799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar a, b, actual, expected); 28799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar return actual != expected; 29799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar} 30799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar#endif 31799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar 32799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainarint main() 33799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar{ 34799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar#if __arm__ 35799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar if (test__aeabi_drsub(1.0, 1.0, 0.0)) 36799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar return 1; 37799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar if (test__aeabi_drsub(1234.567, 765.4321, -469.134900)) 38799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar return 1; 39799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar if (test__aeabi_drsub(-123.0, -678.0, -555.0)) 40799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar return 1; 41799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar if (test__aeabi_drsub(0.0, -0.0, 0.0)) 42799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar return 1; 43799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar#else 44799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar printf("skipped\n"); 45799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar#endif 46799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar return 0; 47799172d60d32feb1acba1a6867f3a9c39a999e5cPirama Arumuga Nainar} 48