@@ -5,8 +5,7 @@ define <4 x i32> @umax_fixed(i32 %x, i32 %y) {
5
5
; CHECK-LABEL: define <4 x i32> @umax_fixed(
6
6
; CHECK-SAME: i32 [[X:%.*]], i32 [[Y:%.*]]) {
7
7
; CHECK-NEXT: [[V_SCALAR:%.*]] = call i32 @llvm.umax.i32(i32 [[X]], i32 [[Y]])
8
- ; CHECK-NEXT: [[TMP1:%.*]] = call <4 x i32> @llvm.umax.v4i32(<4 x i32> poison, <4 x i32> poison)
9
- ; CHECK-NEXT: [[V:%.*]] = insertelement <4 x i32> [[TMP1]], i32 [[V_SCALAR]], i64 0
8
+ ; CHECK-NEXT: [[V:%.*]] = insertelement <4 x i32> poison, i32 [[V_SCALAR]], i64 0
10
9
; CHECK-NEXT: ret <4 x i32> [[V]]
11
10
;
12
11
%x.insert = insertelement <4 x i32 > poison, i32 %x , i32 0
@@ -19,8 +18,7 @@ define <vscale x 4 x i32> @umax_scalable(i32 %x, i32 %y) {
19
18
; CHECK-LABEL: define <vscale x 4 x i32> @umax_scalable(
20
19
; CHECK-SAME: i32 [[X:%.*]], i32 [[Y:%.*]]) {
21
20
; CHECK-NEXT: [[V_SCALAR:%.*]] = call i32 @llvm.umax.i32(i32 [[X]], i32 [[Y]])
22
- ; CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 4 x i32> @llvm.umax.nxv4i32(<vscale x 4 x i32> poison, <vscale x 4 x i32> poison)
23
- ; CHECK-NEXT: [[V:%.*]] = insertelement <vscale x 4 x i32> [[TMP1]], i32 [[V_SCALAR]], i64 0
21
+ ; CHECK-NEXT: [[V:%.*]] = insertelement <vscale x 4 x i32> poison, i32 [[V_SCALAR]], i64 0
24
22
; CHECK-NEXT: ret <vscale x 4 x i32> [[V]]
25
23
;
26
24
%x.insert = insertelement <vscale x 4 x i32 > poison, i32 %x , i32 0
@@ -33,8 +31,7 @@ define <4 x i32> @umax_fixed_lhs_const(i32 %x) {
33
31
; CHECK-LABEL: define <4 x i32> @umax_fixed_lhs_const(
34
32
; CHECK-SAME: i32 [[X:%.*]]) {
35
33
; CHECK-NEXT: [[V_SCALAR:%.*]] = call i32 @llvm.umax.i32(i32 1, i32 [[X]])
36
- ; CHECK-NEXT: [[TMP1:%.*]] = call <4 x i32> @llvm.umax.v4i32(<4 x i32> <i32 1, i32 2, i32 3, i32 4>, <4 x i32> poison)
37
- ; CHECK-NEXT: [[V:%.*]] = insertelement <4 x i32> [[TMP1]], i32 [[V_SCALAR]], i64 0
34
+ ; CHECK-NEXT: [[V:%.*]] = insertelement <4 x i32> poison, i32 [[V_SCALAR]], i64 0
38
35
; CHECK-NEXT: ret <4 x i32> [[V]]
39
36
;
40
37
%x.insert = insertelement <4 x i32 > poison, i32 %x , i32 0
@@ -46,8 +43,7 @@ define <4 x i32> @umax_fixed_rhs_const(i32 %x) {
46
43
; CHECK-LABEL: define <4 x i32> @umax_fixed_rhs_const(
47
44
; CHECK-SAME: i32 [[X:%.*]]) {
48
45
; CHECK-NEXT: [[V_SCALAR:%.*]] = call i32 @llvm.umax.i32(i32 [[X]], i32 1)
49
- ; CHECK-NEXT: [[TMP1:%.*]] = call <4 x i32> @llvm.umax.v4i32(<4 x i32> poison, <4 x i32> <i32 1, i32 2, i32 3, i32 4>)
50
- ; CHECK-NEXT: [[V:%.*]] = insertelement <4 x i32> [[TMP1]], i32 [[V_SCALAR]], i64 0
46
+ ; CHECK-NEXT: [[V:%.*]] = insertelement <4 x i32> poison, i32 [[V_SCALAR]], i64 0
51
47
; CHECK-NEXT: ret <4 x i32> [[V]]
52
48
;
53
49
%x.insert = insertelement <4 x i32 > poison, i32 %x , i32 0
@@ -59,8 +55,7 @@ define <vscale x 4 x i32> @umax_scalable_lhs_const(i32 %x) {
59
55
; CHECK-LABEL: define <vscale x 4 x i32> @umax_scalable_lhs_const(
60
56
; CHECK-SAME: i32 [[X:%.*]]) {
61
57
; CHECK-NEXT: [[V_SCALAR:%.*]] = call i32 @llvm.umax.i32(i32 42, i32 [[X]])
62
- ; CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 4 x i32> @llvm.umax.nxv4i32(<vscale x 4 x i32> splat (i32 42), <vscale x 4 x i32> poison)
63
- ; CHECK-NEXT: [[V:%.*]] = insertelement <vscale x 4 x i32> [[TMP1]], i32 [[V_SCALAR]], i64 0
58
+ ; CHECK-NEXT: [[V:%.*]] = insertelement <vscale x 4 x i32> poison, i32 [[V_SCALAR]], i64 0
64
59
; CHECK-NEXT: ret <vscale x 4 x i32> [[V]]
65
60
;
66
61
%x.insert = insertelement <vscale x 4 x i32 > poison, i32 %x , i32 0
@@ -72,8 +67,7 @@ define <vscale x 4 x i32> @umax_scalable_rhs_const(i32 %x) {
72
67
; CHECK-LABEL: define <vscale x 4 x i32> @umax_scalable_rhs_const(
73
68
; CHECK-SAME: i32 [[X:%.*]]) {
74
69
; CHECK-NEXT: [[V_SCALAR:%.*]] = call i32 @llvm.umax.i32(i32 [[X]], i32 42)
75
- ; CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 4 x i32> @llvm.umax.nxv4i32(<vscale x 4 x i32> poison, <vscale x 4 x i32> splat (i32 42))
76
- ; CHECK-NEXT: [[V:%.*]] = insertelement <vscale x 4 x i32> [[TMP1]], i32 [[V_SCALAR]], i64 0
70
+ ; CHECK-NEXT: [[V:%.*]] = insertelement <vscale x 4 x i32> poison, i32 [[V_SCALAR]], i64 0
77
71
; CHECK-NEXT: ret <vscale x 4 x i32> [[V]]
78
72
;
79
73
%x.insert = insertelement <vscale x 4 x i32 > poison, i32 %x , i32 0
@@ -100,8 +94,7 @@ define <4 x float> @fabs_fixed(float %x) {
100
94
; CHECK-LABEL: define <4 x float> @fabs_fixed(
101
95
; CHECK-SAME: float [[X:%.*]]) {
102
96
; CHECK-NEXT: [[V_SCALAR:%.*]] = call float @llvm.fabs.f32(float [[X]])
103
- ; CHECK-NEXT: [[TMP1:%.*]] = call <4 x float> @llvm.fabs.v4f32(<4 x float> poison)
104
- ; CHECK-NEXT: [[V:%.*]] = insertelement <4 x float> [[TMP1]], float [[V_SCALAR]], i64 0
97
+ ; CHECK-NEXT: [[V:%.*]] = insertelement <4 x float> poison, float [[V_SCALAR]], i64 0
105
98
; CHECK-NEXT: ret <4 x float> [[V]]
106
99
;
107
100
%x.insert = insertelement <4 x float > poison, float %x , i32 0
@@ -113,8 +106,7 @@ define <vscale x 4 x float> @fabs_scalable(float %x) {
113
106
; CHECK-LABEL: define <vscale x 4 x float> @fabs_scalable(
114
107
; CHECK-SAME: float [[X:%.*]]) {
115
108
; CHECK-NEXT: [[V_SCALAR:%.*]] = call float @llvm.fabs.f32(float [[X]])
116
- ; CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 4 x float> @llvm.fabs.nxv4f32(<vscale x 4 x float> poison)
117
- ; CHECK-NEXT: [[V:%.*]] = insertelement <vscale x 4 x float> [[TMP1]], float [[V_SCALAR]], i64 0
109
+ ; CHECK-NEXT: [[V:%.*]] = insertelement <vscale x 4 x float> poison, float [[V_SCALAR]], i64 0
118
110
; CHECK-NEXT: ret <vscale x 4 x float> [[V]]
119
111
;
120
112
%x.insert = insertelement <vscale x 4 x float > poison, float %x , i32 0
@@ -126,8 +118,7 @@ define <4 x float> @fma_fixed(float %x, float %y, float %z) {
126
118
; CHECK-LABEL: define <4 x float> @fma_fixed(
127
119
; CHECK-SAME: float [[X:%.*]], float [[Y:%.*]], float [[Z:%.*]]) {
128
120
; CHECK-NEXT: [[V_SCALAR:%.*]] = call float @llvm.fma.f32(float [[X]], float [[Y]], float [[Z]])
129
- ; CHECK-NEXT: [[TMP1:%.*]] = call <4 x float> @llvm.fma.v4f32(<4 x float> poison, <4 x float> poison, <4 x float> poison)
130
- ; CHECK-NEXT: [[V:%.*]] = insertelement <4 x float> [[TMP1]], float [[V_SCALAR]], i64 0
121
+ ; CHECK-NEXT: [[V:%.*]] = insertelement <4 x float> poison, float [[V_SCALAR]], i64 0
131
122
; CHECK-NEXT: ret <4 x float> [[V]]
132
123
;
133
124
%x.insert = insertelement <4 x float > poison, float %x , i32 0
@@ -141,8 +132,7 @@ define <vscale x 4 x float> @fma_scalable(float %x, float %y, float %z) {
141
132
; CHECK-LABEL: define <vscale x 4 x float> @fma_scalable(
142
133
; CHECK-SAME: float [[X:%.*]], float [[Y:%.*]], float [[Z:%.*]]) {
143
134
; CHECK-NEXT: [[V_SCALAR:%.*]] = call float @llvm.fma.f32(float [[X]], float [[Y]], float [[Z]])
144
- ; CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 4 x float> @llvm.fma.nxv4f32(<vscale x 4 x float> poison, <vscale x 4 x float> poison, <vscale x 4 x float> poison)
145
- ; CHECK-NEXT: [[V:%.*]] = insertelement <vscale x 4 x float> [[TMP1]], float [[V_SCALAR]], i64 0
135
+ ; CHECK-NEXT: [[V:%.*]] = insertelement <vscale x 4 x float> poison, float [[V_SCALAR]], i64 0
146
136
; CHECK-NEXT: ret <vscale x 4 x float> [[V]]
147
137
;
148
138
%x.insert = insertelement <vscale x 4 x float > poison, float %x , i32 0
@@ -156,8 +146,7 @@ define <4 x float> @scalar_argument(float %x) {
156
146
; CHECK-LABEL: define <4 x float> @scalar_argument(
157
147
; CHECK-SAME: float [[X:%.*]]) {
158
148
; CHECK-NEXT: [[V_SCALAR:%.*]] = call float @llvm.powi.f32.i32(float [[X]], i32 42)
159
- ; CHECK-NEXT: [[TMP1:%.*]] = call <4 x float> @llvm.powi.v4f32.i32(<4 x float> poison, i32 42)
160
- ; CHECK-NEXT: [[V:%.*]] = insertelement <4 x float> [[TMP1]], float [[V_SCALAR]], i64 0
149
+ ; CHECK-NEXT: [[V:%.*]] = insertelement <4 x float> poison, float [[V_SCALAR]], i64 0
161
150
; CHECK-NEXT: ret <4 x float> [[V]]
162
151
;
163
152
%x.insert = insertelement <4 x float > poison, float %x , i32 0
0 commit comments