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