llvm/test/LLC/casts.c
Vikram S. Adve a7a1c7e971 Some of these are feature tests, not regression tests.
This directory needs to be reorganized and some of the tests
need changes to make them executable.  Also comments would help...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2865 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-10 21:54:05 +00:00

85 lines
2.3 KiB
C

#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
int
main(int argc, char** argv)
{
char c1;
short s1, ssf1, ssd1;
uint8_t ubs0;
int8_t bs0;
unsigned char ubc0, uc2;
unsigned short us2, usf1, usd1;
int ic3, is3, sif1, sid1;
uint uic4, uis4, uif1, uid1;
long slf1, sld1;
ulong ulf1, uld1;
float f1;
double d1;
/* Test integer to integer conversions */
c1 = (char) (argc >= 2)? atoi(argv[1]) : 0xff64; /* 100 = 'd' */
s1 = (short) (argc >= 3)? atoi(argv[2]) : -769; /* 0xf7ff = -769 */
ubc0 = (unsigned char) c1; /* 100 = 'd' */
ubs0 = (uint8_t) s1; /* 0xff = 255 */
bs0 = (int8_t) s1; /* 0xff = -1 */
uc2 = (unsigned char) c1; /* 100 = 'd' */
us2 = (unsigned short) s1; /* 0xf7ff = 64767 */
ic3 = (int) c1; /* 100 = 'd' */
is3 = (int) s1; /* 0xfffff7ff = -769 */
uic4 = (unsigned int) c1; /* 100 = 'd' */
uis4 = (unsigned int) s1; /* 0xfffff7ff = 4294966527 */
printf("ubc0 = '%c'\n", ubc0);
printf("ubs0 = %u\n", ubs0);
printf("bs0 = %d\n", bs0);
printf("c1 = '%c'\n", c1);
printf("s1 = %d\n", s1);
printf("uc2 = '%c'\n", uc2);
printf("us2 = %u\n", us2);
printf("ic3 = '%c'\n", ic3);
printf("is3 = %d\n", is3);
printf("uic4 = '%c'\n", uic4);
printf("uis4 = %u\n", uis4);
/* Test floating-point to integer conversions */
f1 = (float) (argc >= 4)? atof(argv[3]) : 1.0;
d1 = (argc >= 5)? atof(argv[4]) : 2.0;
usf1 = (unsigned short) f1;
usd1 = (unsigned short) d1;
uif1 = (unsigned int) f1;
uid1 = (unsigned int) d1;
ulf1 = (unsigned long) f1;
uld1 = (unsigned long) d1;
ssf1 = (short) f1;
ssd1 = (short) d1;
sif1 = (int) f1;
sid1 = (int) d1;
slf1 = (long) f1;
sld1 = (long) d1;
printf("usf1 = %u\n", usf1);
printf("usd1 = %u\n", usd1);
printf("uif1 = %u\n", uif1);
printf("uid1 = %u\n", uid1);
printf("ulf1 = %u\n", ulf1);
printf("uld1 = %u\n", uld1);
printf("ssf1 = %d\n", ssf1);
printf("ssd1 = %d\n", ssd1);
printf("sif1 = %d\n", sif1);
printf("sid1 = %d\n", sid1);
printf("slf1 = %d\n", slf1);
printf("sld1 = %d\n", sld1);
return 0;
}