1*d901eff3SJia Liu #include <stdio.h> 2*d901eff3SJia Liu 3*d901eff3SJia Liu int main(void) 4*d901eff3SJia Liu { 5*d901eff3SJia Liu int a; 6*d901eff3SJia Liu float b, c, d; 7*d901eff3SJia Liu int result; 8*d901eff3SJia Liu 9*d901eff3SJia Liu a = 0; 10*d901eff3SJia Liu b = 124.5; 11*d901eff3SJia Liu c = 1.4; 12*d901eff3SJia Liu result = 1; 13*d901eff3SJia Liu __asm 14*d901eff3SJia Liu ("lfltd:\n\t" 15*d901eff3SJia Liu "l.addi %0, %0, 0x1\n\t" 16*d901eff3SJia Liu "lf.sflt.s %1, %2\n\t" 17*d901eff3SJia Liu "l.bf lfltd\n\t" 18*d901eff3SJia Liu "l.nop\n\t" 19*d901eff3SJia Liu : "+r"(a) 20*d901eff3SJia Liu : "r"(b), "r"(c) 21*d901eff3SJia Liu ); 22*d901eff3SJia Liu if (a != result) { 23*d901eff3SJia Liu printf("lf.sflt.s error\n"); 24*d901eff3SJia Liu return -1; 25*d901eff3SJia Liu } 26*d901eff3SJia Liu 27*d901eff3SJia Liu a = 0; 28*d901eff3SJia Liu b = 11.1; 29*d901eff3SJia Liu c = 13.1; 30*d901eff3SJia Liu d = 1.0; 31*d901eff3SJia Liu result = 2; 32*d901eff3SJia Liu __asm 33*d901eff3SJia Liu ("1:\n\t" 34*d901eff3SJia Liu "lf.add.s %1, %1, %3\n\t" 35*d901eff3SJia Liu "l.addi %0, %0, 1\n\t" 36*d901eff3SJia Liu "lf.sflt.s %1, %2\n\t" 37*d901eff3SJia Liu "l.bf 1b\n\t" 38*d901eff3SJia Liu "l.nop\n\t" 39*d901eff3SJia Liu : "+r"(a) 40*d901eff3SJia Liu : "r"(b), "r"(c), "r"(d) 41*d901eff3SJia Liu ); 42*d901eff3SJia Liu if (a != result) { 43*d901eff3SJia Liu printf("lf.sflt.s error\n"); 44*d901eff3SJia Liu return -1; 45*d901eff3SJia Liu } 46*d901eff3SJia Liu 47*d901eff3SJia Liu /* int a; 48*d901eff3SJia Liu double b, c; 49*d901eff3SJia Liu int result; 50*d901eff3SJia Liu 51*d901eff3SJia Liu a = 0; 52*d901eff3SJia Liu b = 1432.1; 53*d901eff3SJia Liu c = 2.4; 54*d901eff3SJia Liu result = 0x1; 55*d901eff3SJia Liu __asm 56*d901eff3SJia Liu ("lfltd:\n\t" 57*d901eff3SJia Liu "l.addi %0, %0, 0x1\n\t" 58*d901eff3SJia Liu "lf.sflt.d %1, %2\n\t" 59*d901eff3SJia Liu "l.bf lfltd\n\t" 60*d901eff3SJia Liu "l.nop\n\t" 61*d901eff3SJia Liu : "+r"(a) 62*d901eff3SJia Liu : "r"(b), "r"(c) 63*d901eff3SJia Liu ); 64*d901eff3SJia Liu if (a != result) { 65*d901eff3SJia Liu printf("lf.sflt.d error\n"); 66*d901eff3SJia Liu return -1; 67*d901eff3SJia Liu } 68*d901eff3SJia Liu 69*d901eff3SJia Liu a = 0; 70*d901eff3SJia Liu b = 1.1; 71*d901eff3SJia Liu c = 19.7; 72*d901eff3SJia Liu result = 2; 73*d901eff3SJia Liu __asm 74*d901eff3SJia Liu ("lf.sflt.d %1, %2\n\t" 75*d901eff3SJia Liu "l.bf 1f\n\t" 76*d901eff3SJia Liu "l.nop\n\t" 77*d901eff3SJia Liu "l.addi %0, %0, 1\n\t" 78*d901eff3SJia Liu "l.addi %0, %0, 1\n\t" 79*d901eff3SJia Liu "l.addi %0, %0, 1\n\t" 80*d901eff3SJia Liu "1:\n\t" 81*d901eff3SJia Liu "l.addi %0, %0, 1\n\t" 82*d901eff3SJia Liu "l.addi %0, %0, 1\n\t" 83*d901eff3SJia Liu : "+r"(a), "+r"(b) 84*d901eff3SJia Liu : "r"(c) 85*d901eff3SJia Liu ); 86*d901eff3SJia Liu if (a != result) { 87*d901eff3SJia Liu printf("lf.sflt.d error\n"); 88*d901eff3SJia Liu return -1; 89*d901eff3SJia Liu }*/ 90*d901eff3SJia Liu 91*d901eff3SJia Liu return 0; 92*d901eff3SJia Liu } 93