| ; RUN: llvm-as < %s | llc -march=x86 | |
| implementation | |
| declare int %llvm.readport (ushort) | |
| declare void %llvm.writeport (int, ushort) | |
| int %in(ushort %p) { | |
| %i1 = call int %llvm.readport (ushort 255) | |
| %i2 = call int %llvm.readport (ushort %p) | |
| %r = add int %i1, %i2 | |
| ret int %r | |
| } | |
| void %out(ushort %p) { | |
| call void(int, ushort)* %llvm.writeport (int 1, ushort 255) | |
| call void(int, ushort)* %llvm.writeport (int 4, ushort %p) | |
| ret void | |
| } | |