Skip to content

Commit 2f95298

Browse files
committed
[LoopVectorize][X86] amdlibm-calls.ll - add additional 2/4/8/16 vector widths test checks
This should cover most amdlibm functions, but still not added every VF combo (e.g. 2f32/16f64 often vectorises to the llvm intrinsic for that vector type)
1 parent c57abc6 commit 2f95298

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

llvm/test/Transforms/LoopVectorize/X86/amdlibm-calls.ll

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ declare float @llvm.exp2.f32(float) #0
7777

7878
define void @sin_f64(ptr nocapture %varray) {
7979
; CHECK-LABEL: @sin_f64(
80+
; CHECK-VF2: [[TMP5:%.*]] = call <2 x double> @amd_vrd2_sin(<2 x double> [[TMP4:%.*]])
8081
; CHECK-VF4: [[TMP5:%.*]] = call <4 x double> @amd_vrd4_sin(<4 x double> [[TMP4:%.*]])
8182
; CHECK-VF8: [[TMP5:%.*]] = call <8 x double> @amd_vrd8_sin(<8 x double> [[TMP4:%.*]])
8283
; CHECK: ret void
@@ -102,6 +103,7 @@ for.end:
102103
define void @sin_f32(ptr nocapture %varray) {
103104
; CHECK-LABEL: @sin_f32(
104105
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_sinf(<4 x float> [[TMP4:%.*]])
106+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_sinf(<8 x float> [[TMP4:%.*]])
105107
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_sinf(<16 x float> [[TMP4:%.*]])
106108
; CHECK: ret void
107109
;
@@ -125,6 +127,7 @@ for.end:
125127

126128
define void @sin_f64_intrinsic(ptr nocapture %varray) {
127129
; CHECK-LABEL: @sin_f64_intrinsic(
130+
; CHECK-VF2: [[TMP5:%.*]] = call <2 x double> @amd_vrd2_sin(<2 x double> [[TMP4:%.*]])
128131
; CHECK-VF4: [[TMP5:%.*]] = call <4 x double> @amd_vrd4_sin(<4 x double> [[TMP4:%.*]])
129132
; CHECK-VF8: [[TMP5:%.*]] = call <8 x double> @amd_vrd8_sin(<8 x double> [[TMP4:%.*]])
130133
; CHECK: ret void
@@ -150,6 +153,7 @@ for.end:
150153
define void @sin_f32_intrinsic(ptr nocapture %varray) {
151154
; CHECK-LABEL: @sin_f32_intrinsic(
152155
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_sinf(<4 x float> [[TMP4:%.*]])
156+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_sinf(<8 x float> [[TMP4:%.*]])
153157
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_sinf(<16 x float> [[TMP4:%.*]])
154158
; CHECK: ret void
155159
;
@@ -173,6 +177,7 @@ for.end:
173177

174178
define void @cos_f64(ptr nocapture %varray) {
175179
; CHECK-LABEL: @cos_f64(
180+
; CHECK-VF2: [[TMP5:%.*]] = call <2 x double> @amd_vrd2_cos(<2 x double> [[TMP4:%.*]])
176181
; CHECK-VF4: [[TMP5:%.*]] = call <4 x double> @amd_vrd4_cos(<4 x double> [[TMP4:%.*]])
177182
; CHECK-VF8: [[TMP5:%.*]] = call <8 x double> @amd_vrd8_cos(<8 x double> [[TMP4:%.*]])
178183
; CHECK: ret void
@@ -198,6 +203,7 @@ for.end:
198203
define void @cos_f32(ptr nocapture %varray) {
199204
; CHECK-LABEL: @cos_f32(
200205
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_cosf(<4 x float> [[TMP4:%.*]])
206+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_cosf(<8 x float> [[TMP4:%.*]])
201207
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_cosf(<16 x float> [[TMP4:%.*]])
202208
; CHECK: ret void
203209
;
@@ -221,6 +227,7 @@ for.end:
221227

222228
define void @cos_f64_intrinsic(ptr nocapture %varray) {
223229
; CHECK-LABEL: @cos_f64_intrinsic(
230+
; CHECK-VF2: [[TMP5:%.*]] = call <2 x double> @amd_vrd2_cos(<2 x double> [[TMP4:%.*]])
224231
; CHECK-VF4: [[TMP5:%.*]] = call <4 x double> @amd_vrd4_cos(<4 x double> [[TMP4:%.*]])
225232
; CHECK-VF8: [[TMP5:%.*]] = call <8 x double> @amd_vrd8_cos(<8 x double> [[TMP4:%.*]])
226233
; CHECK: ret void
@@ -246,6 +253,7 @@ for.end:
246253
define void @cos_f32_intrinsic(ptr nocapture %varray) {
247254
; CHECK-LABEL: @cos_f32_intrinsic(
248255
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_cosf(<4 x float> [[TMP4:%.*]])
256+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_cosf(<8 x float> [[TMP4:%.*]])
249257
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_cosf(<16 x float> [[TMP4:%.*]])
250258
; CHECK: ret void
251259
;
@@ -295,6 +303,7 @@ for.end:
295303
define void @tan_f32(ptr nocapture %varray) {
296304
; CHECK-LABEL: @tan_f32(
297305
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_tanf(<4 x float> [[TMP4:%.*]])
306+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_tanf(<8 x float> [[TMP4:%.*]])
298307
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_tanf(<16 x float> [[TMP4:%.*]])
299308
; CHECK: ret void
300309
;
@@ -344,6 +353,7 @@ for.end:
344353
define void @tan_f32_intrinsic(ptr nocapture %varray) {
345354
; CHECK-LABEL: @tan_f32_intrinsic(
346355
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_tanf(<4 x float> [[TMP4:%.*]])
356+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_tanf(<8 x float> [[TMP4:%.*]])
347357
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_tanf(<16 x float> [[TMP4:%.*]])
348358
; CHECK: ret void
349359
;
@@ -368,6 +378,7 @@ for.end:
368378
define void @acos_f32(ptr nocapture %varray) {
369379
; CHECK-LABEL: @acos_f32(
370380
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_acosf(<4 x float> [[TMP4:%.*]])
381+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_acosf(<8 x float> [[TMP4:%.*]])
371382
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_acosf(<16 x float> [[TMP4:%.*]])
372383
; CHECK: ret void
373384
;
@@ -392,6 +403,7 @@ for.end:
392403
define void @acos_f32_intrinsic(ptr nocapture %varray) {
393404
; CHECK-LABEL: @acos_f32_intrinsic(
394405
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_acosf(<4 x float> [[TMP4:%.*]])
406+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_acosf(<8 x float> [[TMP4:%.*]])
395407
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_acosf(<16 x float> [[TMP4:%.*]])
396408
; CHECK: ret void
397409
;
@@ -439,6 +451,7 @@ for.end:
439451
define void @asin_f32(ptr nocapture %varray) {
440452
; CHECK-LABEL: @asin_f32(
441453
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_asinf(<4 x float> [[TMP4:%.*]])
454+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_asinf(<8 x float> [[TMP4:%.*]])
442455
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_asinf(<16 x float> [[TMP4:%.*]])
443456
; CHECK: ret void
444457
;
@@ -486,6 +499,7 @@ for.end:
486499
define void @asin_f32_intrinsic(ptr nocapture %varray) {
487500
; CHECK-LABEL: @asin_f32_intrinsic(
488501
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_asinf(<4 x float> [[TMP4:%.*]])
502+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_asinf(<8 x float> [[TMP4:%.*]])
489503
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_asinf(<16 x float> [[TMP4:%.*]])
490504
; CHECK: ret void
491505
;
@@ -535,6 +549,7 @@ for.end:
535549
define void @atan_f32(ptr nocapture %varray) {
536550
; CHECK-LABEL: @atan_f32(
537551
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_atanf(<4 x float> [[TMP4:%.*]])
552+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_atanf(<8 x float> [[TMP4:%.*]])
538553
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_atanf(<16 x float> [[TMP4:%.*]])
539554
; CHECK: ret void
540555
;
@@ -584,6 +599,7 @@ for.end:
584599
define void @atan_f32_intrinsic(ptr nocapture %varray) {
585600
; CHECK-LABEL: @atan_f32_intrinsic(
586601
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_atanf(<4 x float> [[TMP4:%.*]])
602+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_atanf(<8 x float> [[TMP4:%.*]])
587603
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_atanf(<16 x float> [[TMP4:%.*]])
588604
; CHECK: ret void
589605
;
@@ -631,6 +647,7 @@ for.end:
631647
define void @cosh_f32(ptr nocapture %varray) {
632648
; CHECK-LABEL: @cosh_f32(
633649
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_coshf(<4 x float> [[TMP4:%.*]])
650+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_coshf(<8 x float> [[TMP4:%.*]])
634651
; CHECK: ret void
635652
;
636653
entry:
@@ -677,6 +694,7 @@ for.end:
677694
define void @cosh_f32_intrinsic(ptr nocapture %varray) {
678695
; CHECK-LABEL: @cosh_f32_intrinsic(
679696
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_coshf(<4 x float> [[TMP4:%.*]])
697+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_coshf(<8 x float> [[TMP4:%.*]])
680698
; CHECK: ret void
681699
;
682700
entry:
@@ -700,6 +718,7 @@ for.end:
700718
define void @tanh_f32(ptr nocapture %varray) {
701719
; CHECK-LABEL: @tanh_f32(
702720
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_tanhf(<4 x float> [[TMP4:%.*]])
721+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_tanhf(<8 x float> [[TMP4:%.*]])
703722
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_tanhf(<16 x float> [[TMP4:%.*]])
704723
; CHECK: ret void
705724
;
@@ -724,6 +743,7 @@ for.end:
724743
define void @tanh_f32_intrinsic(ptr nocapture %varray) {
725744
; CHECK-LABEL: @tanh_f32_intrinsic(
726745
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_tanhf(<4 x float> [[TMP4:%.*]])
746+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_tanhf(<8 x float> [[TMP4:%.*]])
727747
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_tanhf(<16 x float> [[TMP4:%.*]])
728748
; CHECK: ret void
729749
;
@@ -747,6 +767,7 @@ for.end:
747767

748768
define void @pow_f64(ptr nocapture %varray, ptr nocapture readonly %exp) {
749769
; CHECK-LABEL: @pow_f64(
770+
; CHECK-VF2: [[TMP8:%.*]] = call <2 x double> @amd_vrd2_pow(<2 x double> [[TMP4:%.*]], <2 x double> [[WIDE_LOAD:%.*]])
750771
; CHECK-VF4: [[TMP8:%.*]] = call <4 x double> @amd_vrd4_pow(<4 x double> [[TMP4:%.*]], <4 x double> [[WIDE_LOAD:%.*]])
751772
; CHECK-VF8: [[TMP8:%.*]] = call <8 x double> @amd_vrd8_pow(<8 x double> [[TMP4:%.*]], <8 x double> [[WIDE_LOAD:%.*]])
752773
; CHECK: ret void
@@ -773,6 +794,7 @@ for.end:
773794

774795
define void @pow_f64_intrinsic(ptr nocapture %varray, ptr nocapture readonly %exp) {
775796
; CHECK-LABEL: @pow_f64_intrinsic(
797+
; CHECK-VF2: [[TMP8:%.*]] = call <2 x double> @amd_vrd2_pow(<2 x double> [[TMP4:%.*]], <2 x double> [[WIDE_LOAD:%.*]])
776798
; CHECK-VF4: [[TMP8:%.*]] = call <4 x double> @amd_vrd4_pow(<4 x double> [[TMP4:%.*]], <4 x double> [[WIDE_LOAD:%.*]])
777799
; CHECK-VF8: [[TMP8:%.*]] = call <8 x double> @amd_vrd8_pow(<8 x double> [[TMP4:%.*]], <8 x double> [[WIDE_LOAD:%.*]])
778800
; CHECK: ret void
@@ -800,6 +822,7 @@ for.end:
800822
define void @pow_f32(ptr nocapture %varray, ptr nocapture readonly %exp) {
801823
; CHECK-LABEL: @pow_f32(
802824
; CHECK-VF4: [[TMP8:%.*]] = call <4 x float> @amd_vrs4_powf(<4 x float> [[TMP4:%.*]], <4 x float> [[WIDE_LOAD:%.*]])
825+
; CHECK-VF8: [[TMP8:%.*]] = call <8 x float> @amd_vrs8_powf(<8 x float> [[TMP4:%.*]], <8 x float> [[WIDE_LOAD:%.*]])
803826
; CHECK-VF16: [[TMP8:%.*]] = call <16 x float> @amd_vrs16_powf(<16 x float> [[TMP4:%.*]], <16 x float> [[WIDE_LOAD:%.*]])
804827
; CHECK: ret void
805828
;
@@ -826,6 +849,7 @@ for.end:
826849
define void @pow_f32_intrinsic(ptr nocapture %varray, ptr nocapture readonly %exp) {
827850
; CHECK-LABEL: @pow_f32_intrinsic(
828851
; CHECK-VF4: [[TMP8:%.*]] = call <4 x float> @amd_vrs4_powf(<4 x float> [[TMP4:%.*]], <4 x float> [[WIDE_LOAD:%.*]])
852+
; CHECK-VF8: [[TMP8:%.*]] = call <8 x float> @amd_vrs8_powf(<8 x float> [[TMP4:%.*]], <8 x float> [[WIDE_LOAD:%.*]])
829853
; CHECK-VF16: [[TMP8:%.*]] = call <16 x float> @amd_vrs16_powf(<16 x float> [[TMP4:%.*]], <16 x float> [[WIDE_LOAD:%.*]])
830854
; CHECK: ret void
831855
;
@@ -851,6 +875,7 @@ for.end:
851875

852876
define void @exp_f64(ptr nocapture %varray) {
853877
; CHECK-LABEL: @exp_f64(
878+
; CHECK-VF2: [[TMP5:%.*]] = call <2 x double> @amd_vrd2_exp(<2 x double> [[TMP4:%.*]])
854879
; CHECK-VF4: [[TMP5:%.*]] = call <4 x double> @amd_vrd4_exp(<4 x double> [[TMP4:%.*]])
855880
; CHECK-VF8: [[TMP5:%.*]] = call <8 x double> @amd_vrd8_exp(<8 x double> [[TMP4:%.*]])
856881
; CHECK: ret void
@@ -876,6 +901,7 @@ for.end:
876901
define void @exp_f32(ptr nocapture %varray) {
877902
; CHECK-LABEL: @exp_f32(
878903
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_expf(<4 x float> [[TMP4:%.*]])
904+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_expf(<8 x float> [[TMP4:%.*]])
879905
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_expf(<16 x float> [[TMP4:%.*]])
880906
; CHECK: ret void
881907
;
@@ -899,6 +925,7 @@ for.end:
899925

900926
define void @exp_f64_intrinsic(ptr nocapture %varray) {
901927
; CHECK-LABEL: @exp_f64_intrinsic(
928+
; CHECK-VF2: [[TMP5:%.*]] = call <2 x double> @amd_vrd2_exp(<2 x double> [[TMP4:%.*]])
902929
; CHECK-VF4: [[TMP5:%.*]] = call <4 x double> @amd_vrd4_exp(<4 x double> [[TMP4:%.*]])
903930
; CHECK-VF8: [[TMP5:%.*]] = call <8 x double> @amd_vrd8_exp(<8 x double> [[TMP4:%.*]])
904931
; CHECK: ret void
@@ -924,6 +951,7 @@ for.end:
924951
define void @exp_f32_intrinsic(ptr nocapture %varray) {
925952
; CHECK-LABEL: @exp_f32_intrinsic(
926953
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_expf(<4 x float> [[TMP4:%.*]])
954+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_expf(<8 x float> [[TMP4:%.*]])
927955
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_expf(<16 x float> [[TMP4:%.*]])
928956
; CHECK: ret void
929957
;
@@ -947,6 +975,7 @@ for.end:
947975

948976
define void @log_f64(ptr nocapture %varray) {
949977
; CHECK-LABEL: @log_f64(
978+
; CHECK-VF2: [[TMP5:%.*]] = call <2 x double> @amd_vrd2_log(<2 x double> [[TMP4:%.*]])
950979
; CHECK-VF4: [[TMP5:%.*]] = call <4 x double> @amd_vrd4_log(<4 x double> [[TMP4:%.*]])
951980
; CHECK-VF8: [[TMP5:%.*]] = call <8 x double> @amd_vrd8_log(<8 x double> [[TMP4:%.*]])
952981
; CHECK: ret void
@@ -972,6 +1001,7 @@ for.end:
9721001
define void @log_f32(ptr nocapture %varray) {
9731002
; CHECK-LABEL: @log_f32(
9741003
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_logf(<4 x float> [[TMP4:%.*]])
1004+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_logf(<8 x float> [[TMP4:%.*]])
9751005
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_logf(<16 x float> [[TMP4:%.*]])
9761006
; CHECK: ret void
9771007
;
@@ -995,6 +1025,7 @@ for.end:
9951025

9961026
define void @log_f64_intrinsic(ptr nocapture %varray) {
9971027
; CHECK-LABEL: @log_f64_intrinsic(
1028+
; CHECK-VF2: [[TMP5:%.*]] = call <2 x double> @amd_vrd2_log(<2 x double> [[TMP4:%.*]])
9981029
; CHECK-VF4: [[TMP5:%.*]] = call <4 x double> @amd_vrd4_log(<4 x double> [[TMP4:%.*]])
9991030
; CHECK-VF8: [[TMP5:%.*]] = call <8 x double> @amd_vrd8_log(<8 x double> [[TMP4:%.*]])
10001031
; CHECK: ret void
@@ -1020,6 +1051,7 @@ for.end:
10201051
define void @log_f32_intrinsic(ptr nocapture %varray) {
10211052
; CHECK-LABEL: @log_f32_intrinsic(
10221053
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_logf(<4 x float> [[TMP4:%.*]])
1054+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_logf(<8 x float> [[TMP4:%.*]])
10231055
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_logf(<16 x float> [[TMP4:%.*]])
10241056
; CHECK: ret void
10251057
;
@@ -1043,6 +1075,7 @@ for.end:
10431075

10441076
define void @log2_f64(ptr nocapture %varray) {
10451077
; CHECK-LABEL: @log2_f64(
1078+
; CHECK-VF2: [[TMP5:%.*]] = call <2 x double> @amd_vrd2_log2(<2 x double> [[TMP4:%.*]])
10461079
; CHECK-VF4: [[TMP5:%.*]] = call <4 x double> @amd_vrd4_log2(<4 x double> [[TMP4:%.*]])
10471080
; CHECK-VF8: [[TMP5:%.*]] = call <8 x double> @amd_vrd8_log2(<8 x double> [[TMP4:%.*]])
10481081
; CHECK: ret void
@@ -1068,6 +1101,7 @@ for.end:
10681101
define void @log2_f32(ptr nocapture %varray) {
10691102
; CHECK-LABEL: @log2_f32(
10701103
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_log2f(<4 x float> [[TMP4:%.*]])
1104+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_log2f(<8 x float> [[TMP4:%.*]])
10711105
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_log2f(<16 x float> [[TMP4:%.*]])
10721106
; CHECK: ret void
10731107
;
@@ -1091,6 +1125,7 @@ for.end:
10911125

10921126
define void @log2_f64_intrinsic(ptr nocapture %varray) {
10931127
; CHECK-LABEL: @log2_f64_intrinsic(
1128+
; CHECK-VF2: [[TMP5:%.*]] = call <2 x double> @amd_vrd2_log2(<2 x double> [[TMP4:%.*]])
10941129
; CHECK-VF4: [[TMP5:%.*]] = call <4 x double> @amd_vrd4_log2(<4 x double> [[TMP4:%.*]])
10951130
; CHECK-VF8: [[TMP5:%.*]] = call <8 x double> @amd_vrd8_log2(<8 x double> [[TMP4:%.*]])
10961131
; CHECK: ret void
@@ -1116,6 +1151,7 @@ for.end:
11161151
define void @log2_f32_intrinsic(ptr nocapture %varray) {
11171152
; CHECK-LABEL: @log2_f32_intrinsic(
11181153
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_log2f(<4 x float> [[TMP4:%.*]])
1154+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_log2f(<8 x float> [[TMP4:%.*]])
11191155
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_log2f(<16 x float> [[TMP4:%.*]])
11201156
; CHECK: ret void
11211157
;
@@ -1140,6 +1176,7 @@ for.end:
11401176
define void @log10_f32(ptr nocapture %varray) {
11411177
; CHECK-LABEL: @log10_f32(
11421178
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_log10f(<4 x float> [[TMP4:%.*]])
1179+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_log10f(<8 x float> [[TMP4:%.*]])
11431180
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_log10f(<16 x float> [[TMP4:%.*]])
11441181
; CHECK: ret void
11451182
;
@@ -1164,6 +1201,7 @@ for.end:
11641201
define void @log10_f32_intrinsic(ptr nocapture %varray) {
11651202
; CHECK-LABEL: @log10_f32_intrinsic(
11661203
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_log10f(<4 x float> [[TMP4:%.*]])
1204+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_log10f(<8 x float> [[TMP4:%.*]])
11671205
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_log10f(<16 x float> [[TMP4:%.*]])
11681206
; CHECK: ret void
11691207
;
@@ -1187,6 +1225,7 @@ for.end:
11871225

11881226
define void @exp2_f64(ptr nocapture %varray) {
11891227
; CHECK-LABEL: @exp2_f64(
1228+
; CHECK-VF2: [[TMP5:%.*]] = call <2 x double> @amd_vrd2_exp2(<2 x double> [[TMP4:%.*]])
11901229
; CHECK-VF4: [[TMP5:%.*]] = call <4 x double> @amd_vrd4_exp2(<4 x double> [[TMP4:%.*]])
11911230
; CHECK-VF8: [[TMP5:%.*]] = call <8 x double> @amd_vrd8_exp2(<8 x double> [[TMP4:%.*]])
11921231
; CHECK: ret void
@@ -1212,6 +1251,7 @@ for.end:
12121251
define void @exp2_f32(ptr nocapture %varray) {
12131252
; CHECK-LABEL: @exp2_f32(
12141253
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_exp2f(<4 x float> [[TMP4:%.*]])
1254+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_exp2f(<8 x float> [[TMP4:%.*]])
12151255
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_exp2f(<16 x float> [[TMP4:%.*]])
12161256
; CHECK: ret void
12171257
;
@@ -1235,6 +1275,7 @@ for.end:
12351275

12361276
define void @exp2_f64_intrinsic(ptr nocapture %varray) {
12371277
; CHECK-LABEL: @exp2_f64_intrinsic(
1278+
; CHECK-VF2: [[TMP5:%.*]] = call <2 x double> @amd_vrd2_exp2(<2 x double> [[TMP4:%.*]])
12381279
; CHECK-VF4: [[TMP5:%.*]] = call <4 x double> @amd_vrd4_exp2(<4 x double> [[TMP4:%.*]])
12391280
; CHECK-VF8: [[TMP5:%.*]] = call <8 x double> @amd_vrd8_exp2(<8 x double> [[TMP4:%.*]])
12401281
; CHECK: ret void
@@ -1260,6 +1301,7 @@ for.end:
12601301
define void @exp2_f32_intrinsic(ptr nocapture %varray) {
12611302
; CHECK-LABEL: @exp2_f32_intrinsic(
12621303
; CHECK-VF4: [[TMP5:%.*]] = call <4 x float> @amd_vrs4_exp2f(<4 x float> [[TMP4:%.*]])
1304+
; CHECK-VF8: [[TMP5:%.*]] = call <8 x float> @amd_vrs8_exp2f(<8 x float> [[TMP4:%.*]])
12631305
; CHECK-VF16: [[TMP5:%.*]] = call <16 x float> @amd_vrs16_exp2f(<16 x float> [[TMP4:%.*]])
12641306
; CHECK: ret void
12651307
;

0 commit comments

Comments
 (0)