Remove support for 3DNow!, both intrinsics and builtins. (#96246) · llvm/llvm-project@f0eb558 (original) (raw)

`@@ -7,151 +7,16 @@

`

7

7

` *===-----------------------------------------------------------------------===

`

8

8

` */

`

9

9

``

``

10

`+

// 3dNow intrinsics are no longer supported.

`

``

11

+

10

12

`#ifndef _MM3DNOW_H_INCLUDED

`

11

13

`#define _MM3DNOW_H_INCLUDED

`

12

14

``

``

15

`+

#ifndef _CLANG_DISABLE_CRT_DEPRECATION_WARNINGS

`

``

16

`+

#warning "The <mm3dnow.h> header is deprecated, and 3dNow! intrinsics are unsupported. For other intrinsics, include <x86intrin.h>, instead."

`

``

17

`+

#endif

`

``

18

+

13

19

`#include <mmintrin.h>

`

14

20

`#include <prfchwintrin.h>

`

15

21

``

16

``

`-

typedef float __v2sf attribute((vector_size(8)));

`

17

``

-

18

``

`-

/* Define the default attributes for the functions in this file. */

`

19

``

`-

#define __DEFAULT_FN_ATTRS attribute((always_inline, nodebug, target("3dnow"), min_vector_width(64)))

`

20

``

-

21

``

`-

static inline void attribute((always_inline, nodebug, target("3dnow")))

`

22

``

`-

_m_femms(void) {

`

23

``

`-

__builtin_ia32_femms();

`

24

``

`-

}

`

25

``

-

26

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

27

``

`-

_m_pavgusb(__m64 __m1, __m64 __m2) {

`

28

``

`-

return (__m64)__builtin_ia32_pavgusb((__v8qi)__m1, (__v8qi)__m2);

`

29

``

`-

}

`

30

``

-

31

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

32

``

`-

_m_pf2id(__m64 __m) {

`

33

``

`-

return (__m64)__builtin_ia32_pf2id((__v2sf)__m);

`

34

``

`-

}

`

35

``

-

36

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

37

``

`-

_m_pfacc(__m64 __m1, __m64 __m2) {

`

38

``

`-

return (__m64)__builtin_ia32_pfacc((__v2sf)__m1, (__v2sf)__m2);

`

39

``

`-

}

`

40

``

-

41

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

42

``

`-

_m_pfadd(__m64 __m1, __m64 __m2) {

`

43

``

`-

return (__m64)__builtin_ia32_pfadd((__v2sf)__m1, (__v2sf)__m2);

`

44

``

`-

}

`

45

``

-

46

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

47

``

`-

_m_pfcmpeq(__m64 __m1, __m64 __m2) {

`

48

``

`-

return (__m64)__builtin_ia32_pfcmpeq((__v2sf)__m1, (__v2sf)__m2);

`

49

``

`-

}

`

50

``

-

51

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

52

``

`-

_m_pfcmpge(__m64 __m1, __m64 __m2) {

`

53

``

`-

return (__m64)__builtin_ia32_pfcmpge((__v2sf)__m1, (__v2sf)__m2);

`

54

``

`-

}

`

55

``

-

56

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

57

``

`-

_m_pfcmpgt(__m64 __m1, __m64 __m2) {

`

58

``

`-

return (__m64)__builtin_ia32_pfcmpgt((__v2sf)__m1, (__v2sf)__m2);

`

59

``

`-

}

`

60

``

-

61

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

62

``

`-

_m_pfmax(__m64 __m1, __m64 __m2) {

`

63

``

`-

return (__m64)__builtin_ia32_pfmax((__v2sf)__m1, (__v2sf)__m2);

`

64

``

`-

}

`

65

``

-

66

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

67

``

`-

_m_pfmin(__m64 __m1, __m64 __m2) {

`

68

``

`-

return (__m64)__builtin_ia32_pfmin((__v2sf)__m1, (__v2sf)__m2);

`

69

``

`-

}

`

70

``

-

71

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

72

``

`-

_m_pfmul(__m64 __m1, __m64 __m2) {

`

73

``

`-

return (__m64)__builtin_ia32_pfmul((__v2sf)__m1, (__v2sf)__m2);

`

74

``

`-

}

`

75

``

-

76

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

77

``

`-

_m_pfrcp(__m64 __m) {

`

78

``

`-

return (__m64)__builtin_ia32_pfrcp((__v2sf)__m);

`

79

``

`-

}

`

80

``

-

81

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

82

``

`-

_m_pfrcpit1(__m64 __m1, __m64 __m2) {

`

83

``

`-

return (__m64)__builtin_ia32_pfrcpit1((__v2sf)__m1, (__v2sf)__m2);

`

84

``

`-

}

`

85

``

-

86

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

87

``

`-

_m_pfrcpit2(__m64 __m1, __m64 __m2) {

`

88

``

`-

return (__m64)__builtin_ia32_pfrcpit2((__v2sf)__m1, (__v2sf)__m2);

`

89

``

`-

}

`

90

``

-

91

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

92

``

`-

_m_pfrsqrt(__m64 __m) {

`

93

``

`-

return (__m64)__builtin_ia32_pfrsqrt((__v2sf)__m);

`

94

``

`-

}

`

95

``

-

96

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

97

``

`-

_m_pfrsqrtit1(__m64 __m1, __m64 __m2) {

`

98

``

`-

return (__m64)__builtin_ia32_pfrsqit1((__v2sf)__m1, (__v2sf)__m2);

`

99

``

`-

}

`

100

``

-

101

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

102

``

`-

_m_pfsub(__m64 __m1, __m64 __m2) {

`

103

``

`-

return (__m64)__builtin_ia32_pfsub((__v2sf)__m1, (__v2sf)__m2);

`

104

``

`-

}

`

105

``

-

106

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

107

``

`-

_m_pfsubr(__m64 __m1, __m64 __m2) {

`

108

``

`-

return (__m64)__builtin_ia32_pfsubr((__v2sf)__m1, (__v2sf)__m2);

`

109

``

`-

}

`

110

``

-

111

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

112

``

`-

_m_pi2fd(__m64 __m) {

`

113

``

`-

return (__m64)__builtin_ia32_pi2fd((__v2si)__m);

`

114

``

`-

}

`

115

``

-

116

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

117

``

`-

_m_pmulhrw(__m64 __m1, __m64 __m2) {

`

118

``

`-

return (__m64)__builtin_ia32_pmulhrw((__v4hi)__m1, (__v4hi)__m2);

`

119

``

`-

}

`

120

``

-

121

``

`-

/* Handle the 3dnowa instructions here. */

`

122

``

`-

#undef __DEFAULT_FN_ATTRS

`

123

``

`-

#define __DEFAULT_FN_ATTRS attribute((always_inline, nodebug, target("3dnowa"), min_vector_width(64)))

`

124

``

-

125

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

126

``

`-

_m_pf2iw(__m64 __m) {

`

127

``

`-

return (__m64)__builtin_ia32_pf2iw((__v2sf)__m);

`

128

``

`-

}

`

129

``

-

130

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

131

``

`-

_m_pfnacc(__m64 __m1, __m64 __m2) {

`

132

``

`-

return (__m64)__builtin_ia32_pfnacc((__v2sf)__m1, (__v2sf)__m2);

`

133

``

`-

}

`

134

``

-

135

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

136

``

`-

_m_pfpnacc(__m64 __m1, __m64 __m2) {

`

137

``

`-

return (__m64)__builtin_ia32_pfpnacc((__v2sf)__m1, (__v2sf)__m2);

`

138

``

`-

}

`

139

``

-

140

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

141

``

`-

_m_pi2fw(__m64 __m) {

`

142

``

`-

return (__m64)__builtin_ia32_pi2fw((__v2si)__m);

`

143

``

`-

}

`

144

``

-

145

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

146

``

`-

_m_pswapdsf(__m64 __m) {

`

147

``

`-

return (__m64)__builtin_ia32_pswapdsf((__v2sf)__m);

`

148

``

`-

}

`

149

``

-

150

``

`-

static inline __m64 __DEFAULT_FN_ATTRS

`

151

``

`-

_m_pswapdsi(__m64 __m) {

`

152

``

`-

return (__m64)__builtin_ia32_pswapdsi((__v2si)__m);

`

153

``

`-

}

`

154

``

-

155

``

`-

#undef __DEFAULT_FN_ATTRS

`

156

``

-

157

22

`#endif

`