@@ -611,6 +611,46 @@ entry:
611
611
%vecins.3 = insertelement <4 x float > %vecins.2 , float %4 , i32 3
612
612
ret <4 x float > %vecins.3
613
613
}
614
+ define <4 x float > @int_asin_4x (ptr %a ) {
615
+ ; CHECK-LABEL: @int_asin_4x(
616
+ ; CHECK-NEXT: entry:
617
+ ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[A:%.*]], align 16
618
+ ; CHECK-NEXT: [[TMP1:%.*]] = call fast <4 x float> @vasinf(<4 x float> [[TMP0]])
619
+ ; CHECK-NEXT: ret <4 x float> [[TMP1]]
620
+ ;
621
+ ; NOACCELERATE-LABEL: @int_asin_4x(
622
+ ; NOACCELERATE-NEXT: entry:
623
+ ; NOACCELERATE-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[A:%.*]], align 16
624
+ ; NOACCELERATE-NEXT: [[VECEXT:%.*]] = extractelement <4 x float> [[TMP0]], i32 0
625
+ ; NOACCELERATE-NEXT: [[TMP1:%.*]] = tail call fast float @llvm.asin.f32(float [[VECEXT]])
626
+ ; NOACCELERATE-NEXT: [[VECINS:%.*]] = insertelement <4 x float> poison, float [[TMP1]], i32 0
627
+ ; NOACCELERATE-NEXT: [[VECEXT_1:%.*]] = extractelement <4 x float> [[TMP0]], i32 1
628
+ ; NOACCELERATE-NEXT: [[TMP2:%.*]] = tail call fast float @llvm.asin.f32(float [[VECEXT_1]])
629
+ ; NOACCELERATE-NEXT: [[VECINS_1:%.*]] = insertelement <4 x float> [[VECINS]], float [[TMP2]], i32 1
630
+ ; NOACCELERATE-NEXT: [[VECEXT_2:%.*]] = extractelement <4 x float> [[TMP0]], i32 2
631
+ ; NOACCELERATE-NEXT: [[TMP3:%.*]] = tail call fast float @llvm.asin.f32(float [[VECEXT_2]])
632
+ ; NOACCELERATE-NEXT: [[VECINS_2:%.*]] = insertelement <4 x float> [[VECINS_1]], float [[TMP3]], i32 2
633
+ ; NOACCELERATE-NEXT: [[VECEXT_3:%.*]] = extractelement <4 x float> [[TMP0]], i32 3
634
+ ; NOACCELERATE-NEXT: [[TMP4:%.*]] = tail call fast float @llvm.asin.f32(float [[VECEXT_3]])
635
+ ; NOACCELERATE-NEXT: [[VECINS_3:%.*]] = insertelement <4 x float> [[VECINS_2]], float [[TMP4]], i32 3
636
+ ; NOACCELERATE-NEXT: ret <4 x float> [[VECINS_3]]
637
+ ;
638
+ entry:
639
+ %0 = load <4 x float >, ptr %a , align 16
640
+ %vecext = extractelement <4 x float > %0 , i32 0
641
+ %1 = tail call fast float @llvm.asin.f32 (float %vecext )
642
+ %vecins = insertelement <4 x float > poison, float %1 , i32 0
643
+ %vecext.1 = extractelement <4 x float > %0 , i32 1
644
+ %2 = tail call fast float @llvm.asin.f32 (float %vecext.1 )
645
+ %vecins.1 = insertelement <4 x float > %vecins , float %2 , i32 1
646
+ %vecext.2 = extractelement <4 x float > %0 , i32 2
647
+ %3 = tail call fast float @llvm.asin.f32 (float %vecext.2 )
648
+ %vecins.2 = insertelement <4 x float > %vecins.1 , float %3 , i32 2
649
+ %vecext.3 = extractelement <4 x float > %0 , i32 3
650
+ %4 = tail call fast float @llvm.asin.f32 (float %vecext.3 )
651
+ %vecins.3 = insertelement <4 x float > %vecins.2 , float %4 , i32 3
652
+ ret <4 x float > %vecins.3
653
+ }
614
654
declare float @acosf (float ) readonly nounwind willreturn
615
655
define <4 x float > @acos_4x (ptr %a ) {
616
656
; CHECK-LABEL: @acos_4x(
@@ -652,6 +692,46 @@ entry:
652
692
%vecins.3 = insertelement <4 x float > %vecins.2 , float %4 , i32 3
653
693
ret <4 x float > %vecins.3
654
694
}
695
+ define <4 x float > @int_acos_4x (ptr %a ) {
696
+ ; CHECK-LABEL: @int_acos_4x(
697
+ ; CHECK-NEXT: entry:
698
+ ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[A:%.*]], align 16
699
+ ; CHECK-NEXT: [[TMP1:%.*]] = call fast <4 x float> @vacosf(<4 x float> [[TMP0]])
700
+ ; CHECK-NEXT: ret <4 x float> [[TMP1]]
701
+ ;
702
+ ; NOACCELERATE-LABEL: @int_acos_4x(
703
+ ; NOACCELERATE-NEXT: entry:
704
+ ; NOACCELERATE-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[A:%.*]], align 16
705
+ ; NOACCELERATE-NEXT: [[VECEXT:%.*]] = extractelement <4 x float> [[TMP0]], i32 0
706
+ ; NOACCELERATE-NEXT: [[TMP1:%.*]] = tail call fast float @llvm.acos.f32(float [[VECEXT]])
707
+ ; NOACCELERATE-NEXT: [[VECINS:%.*]] = insertelement <4 x float> poison, float [[TMP1]], i32 0
708
+ ; NOACCELERATE-NEXT: [[VECEXT_1:%.*]] = extractelement <4 x float> [[TMP0]], i32 1
709
+ ; NOACCELERATE-NEXT: [[TMP2:%.*]] = tail call fast float @llvm.acos.f32(float [[VECEXT_1]])
710
+ ; NOACCELERATE-NEXT: [[VECINS_1:%.*]] = insertelement <4 x float> [[VECINS]], float [[TMP2]], i32 1
711
+ ; NOACCELERATE-NEXT: [[VECEXT_2:%.*]] = extractelement <4 x float> [[TMP0]], i32 2
712
+ ; NOACCELERATE-NEXT: [[TMP3:%.*]] = tail call fast float @llvm.acos.f32(float [[VECEXT_2]])
713
+ ; NOACCELERATE-NEXT: [[VECINS_2:%.*]] = insertelement <4 x float> [[VECINS_1]], float [[TMP3]], i32 2
714
+ ; NOACCELERATE-NEXT: [[VECEXT_3:%.*]] = extractelement <4 x float> [[TMP0]], i32 3
715
+ ; NOACCELERATE-NEXT: [[TMP4:%.*]] = tail call fast float @llvm.acos.f32(float [[VECEXT_3]])
716
+ ; NOACCELERATE-NEXT: [[VECINS_3:%.*]] = insertelement <4 x float> [[VECINS_2]], float [[TMP4]], i32 3
717
+ ; NOACCELERATE-NEXT: ret <4 x float> [[VECINS_3]]
718
+ ;
719
+ entry:
720
+ %0 = load <4 x float >, ptr %a , align 16
721
+ %vecext = extractelement <4 x float > %0 , i32 0
722
+ %1 = tail call fast float @llvm.acos.f32 (float %vecext )
723
+ %vecins = insertelement <4 x float > poison, float %1 , i32 0
724
+ %vecext.1 = extractelement <4 x float > %0 , i32 1
725
+ %2 = tail call fast float @llvm.acos.f32 (float %vecext.1 )
726
+ %vecins.1 = insertelement <4 x float > %vecins , float %2 , i32 1
727
+ %vecext.2 = extractelement <4 x float > %0 , i32 2
728
+ %3 = tail call fast float @llvm.acos.f32 (float %vecext.2 )
729
+ %vecins.2 = insertelement <4 x float > %vecins.1 , float %3 , i32 2
730
+ %vecext.3 = extractelement <4 x float > %0 , i32 3
731
+ %4 = tail call fast float @llvm.acos.f32 (float %vecext.3 )
732
+ %vecins.3 = insertelement <4 x float > %vecins.2 , float %4 , i32 3
733
+ ret <4 x float > %vecins.3
734
+ }
655
735
declare float @atanf (float ) readonly nounwind willreturn
656
736
define <4 x float > @atan_4x (ptr %a ) {
657
737
; CHECK-LABEL: @atan_4x(
@@ -693,6 +773,46 @@ entry:
693
773
%vecins.3 = insertelement <4 x float > %vecins.2 , float %4 , i32 3
694
774
ret <4 x float > %vecins.3
695
775
}
776
+ define <4 x float > @int_atan_4x (ptr %a ) {
777
+ ; CHECK-LABEL: @int_atan_4x(
778
+ ; CHECK-NEXT: entry:
779
+ ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[A:%.*]], align 16
780
+ ; CHECK-NEXT: [[TMP1:%.*]] = call fast <4 x float> @vatanf(<4 x float> [[TMP0]])
781
+ ; CHECK-NEXT: ret <4 x float> [[TMP1]]
782
+ ;
783
+ ; NOACCELERATE-LABEL: @int_atan_4x(
784
+ ; NOACCELERATE-NEXT: entry:
785
+ ; NOACCELERATE-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[A:%.*]], align 16
786
+ ; NOACCELERATE-NEXT: [[VECEXT:%.*]] = extractelement <4 x float> [[TMP0]], i32 0
787
+ ; NOACCELERATE-NEXT: [[TMP1:%.*]] = tail call fast float @llvm.atan.f32(float [[VECEXT]])
788
+ ; NOACCELERATE-NEXT: [[VECINS:%.*]] = insertelement <4 x float> poison, float [[TMP1]], i32 0
789
+ ; NOACCELERATE-NEXT: [[VECEXT_1:%.*]] = extractelement <4 x float> [[TMP0]], i32 1
790
+ ; NOACCELERATE-NEXT: [[TMP2:%.*]] = tail call fast float @llvm.atan.f32(float [[VECEXT_1]])
791
+ ; NOACCELERATE-NEXT: [[VECINS_1:%.*]] = insertelement <4 x float> [[VECINS]], float [[TMP2]], i32 1
792
+ ; NOACCELERATE-NEXT: [[VECEXT_2:%.*]] = extractelement <4 x float> [[TMP0]], i32 2
793
+ ; NOACCELERATE-NEXT: [[TMP3:%.*]] = tail call fast float @llvm.atan.f32(float [[VECEXT_2]])
794
+ ; NOACCELERATE-NEXT: [[VECINS_2:%.*]] = insertelement <4 x float> [[VECINS_1]], float [[TMP3]], i32 2
795
+ ; NOACCELERATE-NEXT: [[VECEXT_3:%.*]] = extractelement <4 x float> [[TMP0]], i32 3
796
+ ; NOACCELERATE-NEXT: [[TMP4:%.*]] = tail call fast float @llvm.atan.f32(float [[VECEXT_3]])
797
+ ; NOACCELERATE-NEXT: [[VECINS_3:%.*]] = insertelement <4 x float> [[VECINS_2]], float [[TMP4]], i32 3
798
+ ; NOACCELERATE-NEXT: ret <4 x float> [[VECINS_3]]
799
+ ;
800
+ entry:
801
+ %0 = load <4 x float >, ptr %a , align 16
802
+ %vecext = extractelement <4 x float > %0 , i32 0
803
+ %1 = tail call fast float @llvm.atan.f32 (float %vecext )
804
+ %vecins = insertelement <4 x float > poison, float %1 , i32 0
805
+ %vecext.1 = extractelement <4 x float > %0 , i32 1
806
+ %2 = tail call fast float @llvm.atan.f32 (float %vecext.1 )
807
+ %vecins.1 = insertelement <4 x float > %vecins , float %2 , i32 1
808
+ %vecext.2 = extractelement <4 x float > %0 , i32 2
809
+ %3 = tail call fast float @llvm.atan.f32 (float %vecext.2 )
810
+ %vecins.2 = insertelement <4 x float > %vecins.1 , float %3 , i32 2
811
+ %vecext.3 = extractelement <4 x float > %0 , i32 3
812
+ %4 = tail call fast float @llvm.atan.f32 (float %vecext.3 )
813
+ %vecins.3 = insertelement <4 x float > %vecins.2 , float %4 , i32 3
814
+ ret <4 x float > %vecins.3
815
+ }
696
816
declare float @sinhf (float ) readonly nounwind willreturn
697
817
define <4 x float > @sinh_4x (ptr %a ) {
698
818
; CHECK-LABEL: @sinh_4x(
@@ -734,6 +854,46 @@ entry:
734
854
%vecins.3 = insertelement <4 x float > %vecins.2 , float %4 , i32 3
735
855
ret <4 x float > %vecins.3
736
856
}
857
+ define <4 x float > @int_sinh_4x (ptr %a ) {
858
+ ; CHECK-LABEL: @int_sinh_4x(
859
+ ; CHECK-NEXT: entry:
860
+ ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[A:%.*]], align 16
861
+ ; CHECK-NEXT: [[TMP1:%.*]] = call fast <4 x float> @vsinhf(<4 x float> [[TMP0]])
862
+ ; CHECK-NEXT: ret <4 x float> [[TMP1]]
863
+ ;
864
+ ; NOACCELERATE-LABEL: @int_sinh_4x(
865
+ ; NOACCELERATE-NEXT: entry:
866
+ ; NOACCELERATE-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[A:%.*]], align 16
867
+ ; NOACCELERATE-NEXT: [[VECEXT:%.*]] = extractelement <4 x float> [[TMP0]], i32 0
868
+ ; NOACCELERATE-NEXT: [[TMP1:%.*]] = tail call fast float @llvm.sinh.f32(float [[VECEXT]])
869
+ ; NOACCELERATE-NEXT: [[VECINS:%.*]] = insertelement <4 x float> poison, float [[TMP1]], i32 0
870
+ ; NOACCELERATE-NEXT: [[VECEXT_1:%.*]] = extractelement <4 x float> [[TMP0]], i32 1
871
+ ; NOACCELERATE-NEXT: [[TMP2:%.*]] = tail call fast float @llvm.sinh.f32(float [[VECEXT_1]])
872
+ ; NOACCELERATE-NEXT: [[VECINS_1:%.*]] = insertelement <4 x float> [[VECINS]], float [[TMP2]], i32 1
873
+ ; NOACCELERATE-NEXT: [[VECEXT_2:%.*]] = extractelement <4 x float> [[TMP0]], i32 2
874
+ ; NOACCELERATE-NEXT: [[TMP3:%.*]] = tail call fast float @llvm.sinh.f32(float [[VECEXT_2]])
875
+ ; NOACCELERATE-NEXT: [[VECINS_2:%.*]] = insertelement <4 x float> [[VECINS_1]], float [[TMP3]], i32 2
876
+ ; NOACCELERATE-NEXT: [[VECEXT_3:%.*]] = extractelement <4 x float> [[TMP0]], i32 3
877
+ ; NOACCELERATE-NEXT: [[TMP4:%.*]] = tail call fast float @llvm.sinh.f32(float [[VECEXT_3]])
878
+ ; NOACCELERATE-NEXT: [[VECINS_3:%.*]] = insertelement <4 x float> [[VECINS_2]], float [[TMP4]], i32 3
879
+ ; NOACCELERATE-NEXT: ret <4 x float> [[VECINS_3]]
880
+ ;
881
+ entry:
882
+ %0 = load <4 x float >, ptr %a , align 16
883
+ %vecext = extractelement <4 x float > %0 , i32 0
884
+ %1 = tail call fast float @llvm.sinh.f32 (float %vecext )
885
+ %vecins = insertelement <4 x float > poison, float %1 , i32 0
886
+ %vecext.1 = extractelement <4 x float > %0 , i32 1
887
+ %2 = tail call fast float @llvm.sinh.f32 (float %vecext.1 )
888
+ %vecins.1 = insertelement <4 x float > %vecins , float %2 , i32 1
889
+ %vecext.2 = extractelement <4 x float > %0 , i32 2
890
+ %3 = tail call fast float @llvm.sinh.f32 (float %vecext.2 )
891
+ %vecins.2 = insertelement <4 x float > %vecins.1 , float %3 , i32 2
892
+ %vecext.3 = extractelement <4 x float > %0 , i32 3
893
+ %4 = tail call fast float @llvm.sinh.f32 (float %vecext.3 )
894
+ %vecins.3 = insertelement <4 x float > %vecins.2 , float %4 , i32 3
895
+ ret <4 x float > %vecins.3
896
+ }
737
897
declare float @coshf (float ) readonly nounwind willreturn
738
898
define <4 x float > @cosh_4x (ptr %a ) {
739
899
; CHECK-LABEL: @cosh_4x(
@@ -775,6 +935,46 @@ entry:
775
935
%vecins.3 = insertelement <4 x float > %vecins.2 , float %4 , i32 3
776
936
ret <4 x float > %vecins.3
777
937
}
938
+ define <4 x float > @int_cosh_4x (ptr %a ) {
939
+ ; CHECK-LABEL: @int_cosh_4x(
940
+ ; CHECK-NEXT: entry:
941
+ ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[A:%.*]], align 16
942
+ ; CHECK-NEXT: [[TMP1:%.*]] = call fast <4 x float> @vcoshf(<4 x float> [[TMP0]])
943
+ ; CHECK-NEXT: ret <4 x float> [[TMP1]]
944
+ ;
945
+ ; NOACCELERATE-LABEL: @int_cosh_4x(
946
+ ; NOACCELERATE-NEXT: entry:
947
+ ; NOACCELERATE-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[A:%.*]], align 16
948
+ ; NOACCELERATE-NEXT: [[VECEXT:%.*]] = extractelement <4 x float> [[TMP0]], i32 0
949
+ ; NOACCELERATE-NEXT: [[TMP1:%.*]] = tail call fast float @llvm.cosh.f32(float [[VECEXT]])
950
+ ; NOACCELERATE-NEXT: [[VECINS:%.*]] = insertelement <4 x float> poison, float [[TMP1]], i32 0
951
+ ; NOACCELERATE-NEXT: [[VECEXT_1:%.*]] = extractelement <4 x float> [[TMP0]], i32 1
952
+ ; NOACCELERATE-NEXT: [[TMP2:%.*]] = tail call fast float @llvm.cosh.f32(float [[VECEXT_1]])
953
+ ; NOACCELERATE-NEXT: [[VECINS_1:%.*]] = insertelement <4 x float> [[VECINS]], float [[TMP2]], i32 1
954
+ ; NOACCELERATE-NEXT: [[VECEXT_2:%.*]] = extractelement <4 x float> [[TMP0]], i32 2
955
+ ; NOACCELERATE-NEXT: [[TMP3:%.*]] = tail call fast float @llvm.cosh.f32(float [[VECEXT_2]])
956
+ ; NOACCELERATE-NEXT: [[VECINS_2:%.*]] = insertelement <4 x float> [[VECINS_1]], float [[TMP3]], i32 2
957
+ ; NOACCELERATE-NEXT: [[VECEXT_3:%.*]] = extractelement <4 x float> [[TMP0]], i32 3
958
+ ; NOACCELERATE-NEXT: [[TMP4:%.*]] = tail call fast float @llvm.cosh.f32(float [[VECEXT_3]])
959
+ ; NOACCELERATE-NEXT: [[VECINS_3:%.*]] = insertelement <4 x float> [[VECINS_2]], float [[TMP4]], i32 3
960
+ ; NOACCELERATE-NEXT: ret <4 x float> [[VECINS_3]]
961
+ ;
962
+ entry:
963
+ %0 = load <4 x float >, ptr %a , align 16
964
+ %vecext = extractelement <4 x float > %0 , i32 0
965
+ %1 = tail call fast float @llvm.cosh.f32 (float %vecext )
966
+ %vecins = insertelement <4 x float > poison, float %1 , i32 0
967
+ %vecext.1 = extractelement <4 x float > %0 , i32 1
968
+ %2 = tail call fast float @llvm.cosh.f32 (float %vecext.1 )
969
+ %vecins.1 = insertelement <4 x float > %vecins , float %2 , i32 1
970
+ %vecext.2 = extractelement <4 x float > %0 , i32 2
971
+ %3 = tail call fast float @llvm.cosh.f32 (float %vecext.2 )
972
+ %vecins.2 = insertelement <4 x float > %vecins.1 , float %3 , i32 2
973
+ %vecext.3 = extractelement <4 x float > %0 , i32 3
974
+ %4 = tail call fast float @llvm.cosh.f32 (float %vecext.3 )
975
+ %vecins.3 = insertelement <4 x float > %vecins.2 , float %4 , i32 3
976
+ ret <4 x float > %vecins.3
977
+ }
778
978
declare float @tanhf (float ) readonly nounwind willreturn
779
979
define <4 x float > @tanh_4x (ptr %a ) {
780
980
; CHECK-LABEL: @tanh_4x(
@@ -816,6 +1016,46 @@ entry:
816
1016
%vecins.3 = insertelement <4 x float > %vecins.2 , float %4 , i32 3
817
1017
ret <4 x float > %vecins.3
818
1018
}
1019
+ define <4 x float > @int_tanh_4x (ptr %a ) {
1020
+ ; CHECK-LABEL: @int_tanh_4x(
1021
+ ; CHECK-NEXT: entry:
1022
+ ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[A:%.*]], align 16
1023
+ ; CHECK-NEXT: [[TMP1:%.*]] = call fast <4 x float> @vtanhf(<4 x float> [[TMP0]])
1024
+ ; CHECK-NEXT: ret <4 x float> [[TMP1]]
1025
+ ;
1026
+ ; NOACCELERATE-LABEL: @int_tanh_4x(
1027
+ ; NOACCELERATE-NEXT: entry:
1028
+ ; NOACCELERATE-NEXT: [[TMP0:%.*]] = load <4 x float>, ptr [[A:%.*]], align 16
1029
+ ; NOACCELERATE-NEXT: [[VECEXT:%.*]] = extractelement <4 x float> [[TMP0]], i32 0
1030
+ ; NOACCELERATE-NEXT: [[TMP1:%.*]] = tail call fast float @llvm.tanh.f32(float [[VECEXT]])
1031
+ ; NOACCELERATE-NEXT: [[VECINS:%.*]] = insertelement <4 x float> poison, float [[TMP1]], i32 0
1032
+ ; NOACCELERATE-NEXT: [[VECEXT_1:%.*]] = extractelement <4 x float> [[TMP0]], i32 1
1033
+ ; NOACCELERATE-NEXT: [[TMP2:%.*]] = tail call fast float @llvm.tanh.f32(float [[VECEXT_1]])
1034
+ ; NOACCELERATE-NEXT: [[VECINS_1:%.*]] = insertelement <4 x float> [[VECINS]], float [[TMP2]], i32 1
1035
+ ; NOACCELERATE-NEXT: [[VECEXT_2:%.*]] = extractelement <4 x float> [[TMP0]], i32 2
1036
+ ; NOACCELERATE-NEXT: [[TMP3:%.*]] = tail call fast float @llvm.tanh.f32(float [[VECEXT_2]])
1037
+ ; NOACCELERATE-NEXT: [[VECINS_2:%.*]] = insertelement <4 x float> [[VECINS_1]], float [[TMP3]], i32 2
1038
+ ; NOACCELERATE-NEXT: [[VECEXT_3:%.*]] = extractelement <4 x float> [[TMP0]], i32 3
1039
+ ; NOACCELERATE-NEXT: [[TMP4:%.*]] = tail call fast float @llvm.tanh.f32(float [[VECEXT_3]])
1040
+ ; NOACCELERATE-NEXT: [[VECINS_3:%.*]] = insertelement <4 x float> [[VECINS_2]], float [[TMP4]], i32 3
1041
+ ; NOACCELERATE-NEXT: ret <4 x float> [[VECINS_3]]
1042
+ ;
1043
+ entry:
1044
+ %0 = load <4 x float >, ptr %a , align 16
1045
+ %vecext = extractelement <4 x float > %0 , i32 0
1046
+ %1 = tail call fast float @llvm.tanh.f32 (float %vecext )
1047
+ %vecins = insertelement <4 x float > poison, float %1 , i32 0
1048
+ %vecext.1 = extractelement <4 x float > %0 , i32 1
1049
+ %2 = tail call fast float @llvm.tanh.f32 (float %vecext.1 )
1050
+ %vecins.1 = insertelement <4 x float > %vecins , float %2 , i32 1
1051
+ %vecext.2 = extractelement <4 x float > %0 , i32 2
1052
+ %3 = tail call fast float @llvm.tanh.f32 (float %vecext.2 )
1053
+ %vecins.2 = insertelement <4 x float > %vecins.1 , float %3 , i32 2
1054
+ %vecext.3 = extractelement <4 x float > %0 , i32 3
1055
+ %4 = tail call fast float @llvm.tanh.f32 (float %vecext.3 )
1056
+ %vecins.3 = insertelement <4 x float > %vecins.2 , float %4 , i32 3
1057
+ ret <4 x float > %vecins.3
1058
+ }
819
1059
declare float @asinhf (float ) readonly nounwind willreturn
820
1060
define <4 x float > @asinh_4x (ptr %a ) {
821
1061
; CHECK-LABEL: @asinh_4x(
0 commit comments