1e80e978d6aa211056beddf4582390e374d1935abNick Kledzik//===-- bswapsi2_test.c - Test __bswapsi2 ---------------------------------===//
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 __bswapsi2 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 uint32_t __bswapsi2(uint32_t);
21e80e978d6aa211056beddf4582390e374d1935abNick Kledzik
22e80e978d6aa211056beddf4582390e374d1935abNick Kledzik#if __arm__
23e80e978d6aa211056beddf4582390e374d1935abNick Kledzikint test__bswapsi2(uint32_t a, uint32_t expected)
24e80e978d6aa211056beddf4582390e374d1935abNick Kledzik{
25e80e978d6aa211056beddf4582390e374d1935abNick Kledzik    uint32_t actual = __bswapsi2(a);
26e80e978d6aa211056beddf4582390e374d1935abNick Kledzik    if (actual != expected)
27e80e978d6aa211056beddf4582390e374d1935abNick Kledzik        printf("error in test__bswapsi2(0x%0X) = 0x%0X, expected 0x%0X\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__bswapsi2(0x12345678, 0x78563412))
37e80e978d6aa211056beddf4582390e374d1935abNick Kledzik        return 1;
38e80e978d6aa211056beddf4582390e374d1935abNick Kledzik    if (test__bswapsi2(0x00000001, 0x01000000))
39e80e978d6aa211056beddf4582390e374d1935abNick Kledzik        return 1;
407482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger#else
417482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger    printf("skipped\n");
42e80e978d6aa211056beddf4582390e374d1935abNick Kledzik#endif
43e80e978d6aa211056beddf4582390e374d1935abNick Kledzik    return 0;
44e80e978d6aa211056beddf4582390e374d1935abNick Kledzik}
45