1e80e978d6aa211056beddf4582390e374d1935abNick Kledzik//===-- bswapdi2_test.c - Test __bswapdi2 ---------------------------------===//
2e80e978d6aa211056beddf4582390e374d1935abNick Kledzik//
3e80e978d6aa211056beddf4582390e374d1935abNick Kledzik//                     The LLVM Compiler Infrastructure
4e80e978d6aa211056beddf4582390e374d1935abNick Kledzik//
59ad441ffec97db647fee3725b3424284fb913e14Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
69ad441ffec97db647fee3725b3424284fb913e14Howard Hinnant// Source Licenses. See LICENSE.TXT for details.
7e80e978d6aa211056beddf4582390e374d1935abNick Kledzik//
8e80e978d6aa211056beddf4582390e374d1935abNick Kledzik//===----------------------------------------------------------------------===//
9e80e978d6aa211056beddf4582390e374d1935abNick Kledzik//
10e80e978d6aa211056beddf4582390e374d1935abNick Kledzik// This file tests __bswapdi2 for the compiler_rt library.
11e80e978d6aa211056beddf4582390e374d1935abNick Kledzik//
12e80e978d6aa211056beddf4582390e374d1935abNick Kledzik//===----------------------------------------------------------------------===//
13e80e978d6aa211056beddf4582390e374d1935abNick Kledzik
14e80e978d6aa211056beddf4582390e374d1935abNick Kledzik#include <stdlib.h>
15e80e978d6aa211056beddf4582390e374d1935abNick Kledzik#include <stdint.h>
16e80e978d6aa211056beddf4582390e374d1935abNick Kledzik#include <stdio.h>
17e80e978d6aa211056beddf4582390e374d1935abNick Kledzik#include <math.h>
18e80e978d6aa211056beddf4582390e374d1935abNick Kledzik
19e80e978d6aa211056beddf4582390e374d1935abNick Kledzik
20e80e978d6aa211056beddf4582390e374d1935abNick Kledzikextern uint64_t __bswapdi2(uint64_t);
21e80e978d6aa211056beddf4582390e374d1935abNick Kledzik
22e80e978d6aa211056beddf4582390e374d1935abNick Kledzik#if __arm__
23e80e978d6aa211056beddf4582390e374d1935abNick Kledzikint test__bswapdi2(uint64_t a, uint64_t expected)
24e80e978d6aa211056beddf4582390e374d1935abNick Kledzik{
25e80e978d6aa211056beddf4582390e374d1935abNick Kledzik    uint64_t actual = __bswapdi2(a);
26e80e978d6aa211056beddf4582390e374d1935abNick Kledzik    if (actual != expected)
27e80e978d6aa211056beddf4582390e374d1935abNick Kledzik        printf("error in test__bswapsi2(0x%0llX) = 0x%0llX, expected 0x%0llX\n",
28e80e978d6aa211056beddf4582390e374d1935abNick Kledzik               a, actual, expected);
29e80e978d6aa211056beddf4582390e374d1935abNick Kledzik    return actual != expected;
30e80e978d6aa211056beddf4582390e374d1935abNick Kledzik}
31e80e978d6aa211056beddf4582390e374d1935abNick Kledzik#endif
32e80e978d6aa211056beddf4582390e374d1935abNick Kledzik
33e80e978d6aa211056beddf4582390e374d1935abNick Kledzikint main()
34e80e978d6aa211056beddf4582390e374d1935abNick Kledzik{
35e80e978d6aa211056beddf4582390e374d1935abNick Kledzik#if __arm__
36e80e978d6aa211056beddf4582390e374d1935abNick Kledzik    if (test__bswapdi2(0x123456789ABCDEF0LL, 0xF0DEBC9A78563412LL))
37e80e978d6aa211056beddf4582390e374d1935abNick Kledzik        return 1;
38e80e978d6aa211056beddf4582390e374d1935abNick Kledzik    if (test__bswapdi2(0x0000000100000002LL, 0x0200000001000000LL))
39e80e978d6aa211056beddf4582390e374d1935abNick Kledzik        return 1;
407482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger#else
417482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger    printf("skipped\n");
42e80e978d6aa211056beddf4582390e374d1935abNick Kledzik#endif
43e80e978d6aa211056beddf4582390e374d1935abNick Kledzik    return 0;
44e80e978d6aa211056beddf4582390e374d1935abNick Kledzik}
45