Skip to content

Commit 794872b

Browse files
committed
merge checks
1 parent f0f4675 commit 794872b

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

clang/lib/Headers/intrin.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -353,18 +353,18 @@ static inline int _outp(unsigned short port, int data) {
353353
return data;
354354
}
355355

356-
static inline unsigned short
357-
_outpw(unsigned short port, unsigned short data) {
356+
static inline unsigned short _outpw(unsigned short port, unsigned short data) {
358357
__asm__ volatile("outw %w0, %w1" : : "a"(data), "Nd"(port));
359358
return data;
360359
}
361360

362-
static inline unsigned long _outpd(unsigned short port,
363-
unsigned long data) {
361+
static inline unsigned long _outpd(unsigned short port, unsigned long data) {
364362
__asm__ volatile("outl %k0, %w1" : : "a"(data), "Nd"(port));
365363
return data;
366364
}
365+
#endif
367366

367+
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__)
368368
static __inline__ void __DEFAULT_FN_ATTRS __nop(void) {
369369
__asm__ volatile("nop");
370370
}

clang/test/CodeGen/X86/ms-x86-intrinsics.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ unsigned __int64 test__emulu(unsigned int a, unsigned int b) {
6363
// CHECK: [[RES:%[0-9]+]] = mul nuw i64 [[Y]], [[X]]
6464
// CHECK: ret i64 [[RES]]
6565

66+
6667
int test_inp(unsigned short port) {
6768
return _inp(port);
6869
}
@@ -91,24 +92,27 @@ int test_outp(unsigned short port, int data) {
9192
return _outp(port, data);
9293
}
9394
// 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]]
95+
// CHECK-SAME: [[PORT:%.*]],
96+
// CHECK-SAME: [[DATA:%.*]])
97+
// CHECK: tail call void asm sideeffect "outb ${0:b}, ${1:w}", "{ax},N{dx},~{dirflag},~{fpsr},~{flags}"(i32 [[DATA]], i16 [[PORT]])
9698
// CHECK-NEXT: ret i32 [[DATA]]
9799

98100
unsigned short test_outpw(unsigned short port, unsigned short data) {
99101
return _outpw(port, data);
100102
}
101103
// 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-SAME: [[PORT:%.*]],
105+
// CHECK-SAME: [[DATA:%.*]])
106+
// CHECK: tail call void asm sideeffect "outw ${0:w}, ${1:w}", "{ax},N{dx},~{dirflag},~{fpsr},~{flags}"(i16 [[DATA]], i16 [[PORT]])
104107
// CHECK-NEXT: ret i16 [[DATA]]
105108

106109
unsigned long test_outpd(unsigned short port, unsigned long data) {
107110
return _outpd(port, data);
108111
}
109112
// 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]])
113+
// CHECK-SAME: [[PORT:%.*]],
114+
// CHECK-SAME: [[DATA:%.*]])
115+
// CHECK: tail call void asm sideeffect "outl ${0:k}, ${1:w}", "{ax},N{dx},~{dirflag},~{fpsr},~{flags}"(i32 [[DATA]], i16 [[PORT]])
112116
// CHECK-NEXT: ret i32 [[DATA]]
113117

114118
#if defined(__x86_64__)

0 commit comments

Comments
 (0)