mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-30 16:17:05 +00:00 
			
		
		
		
	git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17532 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| // RUN: %llvmgcc -S %s -o - | llvm-as -f -o /dev/null
 | |
| 
 | |
| #include <stdlib.h>
 | |
| #include <stdio.h>
 | |
| #include <sys/types.h>
 | |
| 
 | |
| int
 | |
| main(int argc, char** argv)
 | |
| {
 | |
|   char     c1;
 | |
|   short    s1, ssf1, ssd1;
 | |
|   unsigned char  ubs0;
 | |
|   signed char   bs0;
 | |
|   unsigned char ubc0, uc2;
 | |
|   unsigned short us2, usf1, usd1;
 | |
|   int ic3, is3, sif1, sid1;
 | |
|   unsigned int     uic4, uis4, uif1, uid1;
 | |
|   long     slf1, sld1;
 | |
|   unsigned long    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 = (unsigned char) s1;                            /* 0xff = 255 */
 | |
|   bs0  = (signed char) 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;
 | |
| }
 |