@@ -63,7 +63,6 @@ unsigned __int64 test__emulu(unsigned int a, unsigned int b) {
63
63
// CHECK: [[RES:%[0-9]+]] = mul nuw i64 [[Y]], [[X]]
64
64
// CHECK: ret i64 [[RES]]
65
65
66
-
67
66
int test_inp (unsigned short port ) {
68
67
return _inp (port );
69
68
}
@@ -88,6 +87,30 @@ unsigned long test_inpd(unsigned short port) {
88
87
// CHECK: [[TMP0:%.*]] = tail call i32 asm sideeffect "inl ${1:w}, ${0:k}", "={ax},N{dx},~{dirflag},~{fpsr},~{flags}"(i16 [[PORT]])
89
88
// CHECK-NEXT: ret i32 [[TMP0]]
90
89
90
+ int test_outp (unsigned short port , int data ) {
91
+ return _outp (port , data );
92
+ }
93
+ // CHECK-LABEL: i32 @test_outp(
94
+ // CHECK-SAME: [[PORT:%.*]], i32 noundef returned [[DATA:%.*]])
95
+ // CHECK-NEXT: tail call void asm sideeffect "outb ${0:b}, ${1:w}", "{ax},N{dx},~{memory},~{dirflag},~{fpsr},~{flags}"(i32 [[DATA]], i16 [[PORT]]
96
+ // CHECK-NEXT: ret i32 [[DATA]]
97
+
98
+ unsigned short test_outpw (unsigned short port , unsigned short data ) {
99
+ return _outpw (port , data );
100
+ }
101
+ // CHECK-LABEL: i16 @test_outpw(
102
+ // CHECK-SAME: [[PORT:%.*]], i16 noundef returned zeroext [[DATA:%.*]])
103
+ // CHECK-NEXT: tail call void asm sideeffect "outw ${0:w}, ${1:w}", "{ax},N{dx},~{memory},~{dirflag},~{fpsr},~{flags}"(i16 [[DATA]], i16 [[PORT]])
104
+ // CHECK-NEXT: ret i16 [[DATA]]
105
+
106
+ unsigned long test_outpd (unsigned short port , unsigned long data ) {
107
+ return _outpd (port , data );
108
+ }
109
+ // CHECK-LABEL: i32 @test_outpd(
110
+ // CHECK-SAME: [[PORT:%.*]], i32 noundef returned [[DATA:%.*]])
111
+ // CHECK-NEXT: tail call void asm sideeffect "outl ${0:k}, ${1:w}", "{ax},N{dx},~{memory},~{dirflag},~{fpsr},~{flags}"(i32 [[DATA]], i16 [[PORT]])
112
+ // CHECK-NEXT: ret i32 [[DATA]]
113
+
91
114
#if defined(__x86_64__ )
92
115
93
116
char test__readgsbyte (unsigned long Offset ) {
0 commit comments