リポジトリ / emssr / independent_common_compiler
r2
| r2 emssr | 1 | ; %n0 を 0 まで数え下げ、回数を返す。単調停止フラグと omega 読みの見本 |
| r2 emssr | 2 | define i4 @count(i4 %n0) { |
| r2 emssr | 3 | e: |
| r2 emssr | 4 | br label %l |
| r2 emssr | 5 | l: |
| r2 emssr | 6 | %n = phi i4 [ %n0, %e ], [ %n1, %s ] |
| r2 emssr | 7 | %k = phi i4 [ 0, %e ], [ %k1, %s ] |
| r2 emssr | 8 | %z = icmp eq i4 %n, 0 |
| r2 emssr | 9 | br i1 %z, label %x, label %s |
| r2 emssr | 10 | s: |
| r2 emssr | 11 | %n1 = sub nsw i4 %n, 1 |
| r2 emssr | 12 | %k1 = add nsw i4 %k, 1 |
| r2 emssr | 13 | br label %l |
| r2 emssr | 14 | x: |
| r2 emssr | 15 | ret i4 %k |
| r2 emssr | 16 | } |