1 #include <stdio.h> 2 int main(void) 3 { 4 int a, b, c; 5 int result; 6 7 a = 0; 8 b = 3; 9 result = 1; 10 __asm 11 ("1:\n\t" 12 "l.addi %0, %0, 1\n\t" 13 "l.sfgtu %0, %1\n\t" 14 "l.bf 1b\n\t" 15 "l.nop\n\t" 16 : "+r"(a) 17 : "r"(b) 18 ); 19 if (a != result) { 20 printf("sfgtu error\n"); 21 return -1; 22 } 23 24 a = 0xff; 25 b = 3; 26 c = 1; 27 result = 3; 28 __asm 29 ("1:\n\t" 30 "l.sub %0, %0, %2\n\t" 31 "l.sfgtu %0, %1\n\t" 32 "l.bf 1b\n\t" 33 "l.nop\n\t" 34 : "+r"(a) 35 : "r"(b), "r"(c) 36 ); 37 if (a != result) { 38 printf("sfgtu error\n"); 39 return -1; 40 } 41 42 return 0; 43 } 44