@@ -702,18 +702,6 @@ define internal void @static_fn() #0 {
702
702
703
703
declare void @extern_fn ()
704
704
705
- @ifunc_func = ifunc void (), ptr @resolver
706
- @dso_local_ifunc_func = dso_local ifunc void (), ptr @resolver
707
-
708
- define internal ptr @resolver () {
709
- ; CHECK-LABEL: resolver:
710
- ; CHECK: # %bb.0: # %entry
711
- ; CHECK-NEXT: xorl %eax, %eax
712
- ; CHECK-NEXT: retq
713
- entry:
714
- ret ptr null
715
- }
716
-
717
705
define dso_local ptr @lea_static_fn () #0 {
718
706
; SMALL-STATIC-LABEL: lea_static_fn:
719
707
; SMALL-STATIC: # %bb.0:
@@ -747,9 +735,9 @@ define dso_local ptr @lea_static_fn() #0 {
747
735
;
748
736
; LARGE-PIC-LABEL: lea_static_fn:
749
737
; LARGE-PIC: # %bb.0:
750
- ; LARGE-PIC-NEXT: .L14 $pb:
751
- ; LARGE-PIC-NEXT: leaq .L14 $pb(%rip), %rax
752
- ; LARGE-PIC-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L14 $pb, %rcx
738
+ ; LARGE-PIC-NEXT: .L13 $pb:
739
+ ; LARGE-PIC-NEXT: leaq .L13 $pb(%rip), %rax
740
+ ; LARGE-PIC-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L13 $pb, %rcx
753
741
; LARGE-PIC-NEXT: addq %rax, %rcx
754
742
; LARGE-PIC-NEXT: movabsq $static_fn@GOTOFF, %rax
755
743
; LARGE-PIC-NEXT: addq %rcx, %rax
@@ -800,9 +788,9 @@ define dso_local ptr @lea_global_fn() #0 {
800
788
;
801
789
; LARGE-PIC-LABEL: lea_global_fn:
802
790
; LARGE-PIC: # %bb.0:
803
- ; LARGE-PIC-NEXT: .L15 $pb:
804
- ; LARGE-PIC-NEXT: leaq .L15 $pb(%rip), %rax
805
- ; LARGE-PIC-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L15 $pb, %rcx
791
+ ; LARGE-PIC-NEXT: .L14 $pb:
792
+ ; LARGE-PIC-NEXT: leaq .L14 $pb(%rip), %rax
793
+ ; LARGE-PIC-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L14 $pb, %rcx
806
794
; LARGE-PIC-NEXT: addq %rax, %rcx
807
795
; LARGE-PIC-NEXT: movabsq $global_fn@GOTOFF, %rax
808
796
; LARGE-PIC-NEXT: addq %rcx, %rax
@@ -853,9 +841,9 @@ define dso_local ptr @lea_extern_fn() #0 {
853
841
;
854
842
; LARGE-PIC-LABEL: lea_extern_fn:
855
843
; LARGE-PIC: # %bb.0:
856
- ; LARGE-PIC-NEXT: .L16 $pb:
857
- ; LARGE-PIC-NEXT: leaq .L16 $pb(%rip), %rax
858
- ; LARGE-PIC-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L16 $pb, %rcx
844
+ ; LARGE-PIC-NEXT: .L15 $pb:
845
+ ; LARGE-PIC-NEXT: leaq .L15 $pb(%rip), %rax
846
+ ; LARGE-PIC-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L15 $pb, %rcx
859
847
; LARGE-PIC-NEXT: addq %rax, %rcx
860
848
; LARGE-PIC-NEXT: movabsq $extern_fn@GOT, %rax
861
849
; LARGE-PIC-NEXT: movq (%rcx,%rax), %rax
@@ -873,112 +861,6 @@ define dso_local ptr @lea_extern_fn() #0 {
873
861
ret ptr @extern_fn
874
862
}
875
863
876
- define dso_local ptr @lea_ifunc () #0 {
877
- ; SMALL-STATIC-LABEL: lea_ifunc:
878
- ; SMALL-STATIC: # %bb.0:
879
- ; SMALL-STATIC-NEXT: movq ifunc_func@GOTPCREL(%rip), %rax
880
- ; SMALL-STATIC-NEXT: retq
881
- ;
882
- ; MEDIUM-STATIC-LABEL: lea_ifunc:
883
- ; MEDIUM-STATIC: # %bb.0:
884
- ; MEDIUM-STATIC-NEXT: movq ifunc_func@GOTPCREL(%rip), %rax
885
- ; MEDIUM-STATIC-NEXT: retq
886
- ;
887
- ; LARGE-STATIC-LABEL: lea_ifunc:
888
- ; LARGE-STATIC: # %bb.0:
889
- ; LARGE-STATIC-NEXT: movabsq $ifunc_func, %rax
890
- ; LARGE-STATIC-NEXT: retq
891
- ;
892
- ; SMALL-PIC-LABEL: lea_ifunc:
893
- ; SMALL-PIC: # %bb.0:
894
- ; SMALL-PIC-NEXT: movq ifunc_func@GOTPCREL(%rip), %rax
895
- ; SMALL-PIC-NEXT: retq
896
- ;
897
- ; MEDIUM-SMALL-DATA-PIC-LABEL: lea_ifunc:
898
- ; MEDIUM-SMALL-DATA-PIC: # %bb.0:
899
- ; MEDIUM-SMALL-DATA-PIC-NEXT: movq ifunc_func@GOTPCREL(%rip), %rax
900
- ; MEDIUM-SMALL-DATA-PIC-NEXT: retq
901
- ;
902
- ; MEDIUM-PIC-LABEL: lea_ifunc:
903
- ; MEDIUM-PIC: # %bb.0:
904
- ; MEDIUM-PIC-NEXT: movq ifunc_func@GOTPCREL(%rip), %rax
905
- ; MEDIUM-PIC-NEXT: retq
906
- ;
907
- ; LARGE-PIC-LABEL: lea_ifunc:
908
- ; LARGE-PIC: # %bb.0:
909
- ; LARGE-PIC-NEXT: .L17$pb:
910
- ; LARGE-PIC-NEXT: leaq .L17$pb(%rip), %rax
911
- ; LARGE-PIC-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L17$pb, %rcx
912
- ; LARGE-PIC-NEXT: addq %rax, %rcx
913
- ; LARGE-PIC-NEXT: movabsq $ifunc_func@GOT, %rax
914
- ; LARGE-PIC-NEXT: movq (%rcx,%rax), %rax
915
- ; LARGE-PIC-NEXT: retq
916
- ;
917
- ; LARGE-SMALL-DATA-PIC-LABEL: lea_ifunc:
918
- ; LARGE-SMALL-DATA-PIC: # %bb.0:
919
- ; LARGE-SMALL-DATA-PIC-NEXT: .L18$pb:
920
- ; LARGE-SMALL-DATA-PIC-NEXT: leaq .L18$pb(%rip), %rax
921
- ; LARGE-SMALL-DATA-PIC-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L18$pb, %rcx
922
- ; LARGE-SMALL-DATA-PIC-NEXT: addq %rax, %rcx
923
- ; LARGE-SMALL-DATA-PIC-NEXT: movabsq $ifunc_func@GOT, %rax
924
- ; LARGE-SMALL-DATA-PIC-NEXT: movq (%rcx,%rax), %rax
925
- ; LARGE-SMALL-DATA-PIC-NEXT: retq
926
- ret ptr @ifunc_func
927
- }
928
-
929
- define dso_local ptr @lea_dso_local_ifunc () #0 {
930
- ; SMALL-STATIC-LABEL: lea_dso_local_ifunc:
931
- ; SMALL-STATIC: # %bb.0:
932
- ; SMALL-STATIC-NEXT: movl $dso_local_ifunc_func, %eax
933
- ; SMALL-STATIC-NEXT: retq
934
- ;
935
- ; MEDIUM-STATIC-LABEL: lea_dso_local_ifunc:
936
- ; MEDIUM-STATIC: # %bb.0:
937
- ; MEDIUM-STATIC-NEXT: movabsq $dso_local_ifunc_func, %rax
938
- ; MEDIUM-STATIC-NEXT: retq
939
- ;
940
- ; LARGE-STATIC-LABEL: lea_dso_local_ifunc:
941
- ; LARGE-STATIC: # %bb.0:
942
- ; LARGE-STATIC-NEXT: movabsq $dso_local_ifunc_func, %rax
943
- ; LARGE-STATIC-NEXT: retq
944
- ;
945
- ; SMALL-PIC-LABEL: lea_dso_local_ifunc:
946
- ; SMALL-PIC: # %bb.0:
947
- ; SMALL-PIC-NEXT: leaq dso_local_ifunc_func(%rip), %rax
948
- ; SMALL-PIC-NEXT: retq
949
- ;
950
- ; MEDIUM-SMALL-DATA-PIC-LABEL: lea_dso_local_ifunc:
951
- ; MEDIUM-SMALL-DATA-PIC: # %bb.0:
952
- ; MEDIUM-SMALL-DATA-PIC-NEXT: leaq dso_local_ifunc_func(%rip), %rax
953
- ; MEDIUM-SMALL-DATA-PIC-NEXT: retq
954
- ;
955
- ; MEDIUM-PIC-LABEL: lea_dso_local_ifunc:
956
- ; MEDIUM-PIC: # %bb.0:
957
- ; MEDIUM-PIC-NEXT: leaq dso_local_ifunc_func(%rip), %rax
958
- ; MEDIUM-PIC-NEXT: retq
959
- ;
960
- ; LARGE-PIC-LABEL: lea_dso_local_ifunc:
961
- ; LARGE-PIC: # %bb.0:
962
- ; LARGE-PIC-NEXT: .L18$pb:
963
- ; LARGE-PIC-NEXT: leaq .L18$pb(%rip), %rax
964
- ; LARGE-PIC-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L18$pb, %rcx
965
- ; LARGE-PIC-NEXT: addq %rax, %rcx
966
- ; LARGE-PIC-NEXT: movabsq $dso_local_ifunc_func@GOTOFF, %rax
967
- ; LARGE-PIC-NEXT: addq %rcx, %rax
968
- ; LARGE-PIC-NEXT: retq
969
- ;
970
- ; LARGE-SMALL-DATA-PIC-LABEL: lea_dso_local_ifunc:
971
- ; LARGE-SMALL-DATA-PIC: # %bb.0:
972
- ; LARGE-SMALL-DATA-PIC-NEXT: .L19$pb:
973
- ; LARGE-SMALL-DATA-PIC-NEXT: leaq .L19$pb(%rip), %rax
974
- ; LARGE-SMALL-DATA-PIC-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L19$pb, %rcx
975
- ; LARGE-SMALL-DATA-PIC-NEXT: addq %rax, %rcx
976
- ; LARGE-SMALL-DATA-PIC-NEXT: movabsq $dso_local_ifunc_func@GOTOFF, %rax
977
- ; LARGE-SMALL-DATA-PIC-NEXT: addq %rcx, %rax
978
- ; LARGE-SMALL-DATA-PIC-NEXT: retq
979
- ret ptr @dso_local_ifunc_func
980
- }
981
-
982
864
; FIXME: The result is same for small, medium and large model, because we
983
865
; specify pie option in the test case. And the type of tls is initial exec tls.
984
866
; For pic code. The large model code for pic tls should be emitted as below.
@@ -1047,9 +929,9 @@ define dso_local float @load_constant_pool(float %x) #0 {
1047
929
;
1048
930
; LARGE-PIC-LABEL: load_constant_pool:
1049
931
; LARGE-PIC: # %bb.0:
1050
- ; LARGE-PIC-NEXT: .L20 $pb:
1051
- ; LARGE-PIC-NEXT: leaq .L20 $pb(%rip), %rax
1052
- ; LARGE-PIC-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L20 $pb, %rcx
932
+ ; LARGE-PIC-NEXT: .L17 $pb:
933
+ ; LARGE-PIC-NEXT: leaq .L17 $pb(%rip), %rax
934
+ ; LARGE-PIC-NEXT: movabsq $_GLOBAL_OFFSET_TABLE_-.L17 $pb, %rcx
1053
935
; LARGE-PIC-NEXT: addq %rax, %rcx
1054
936
; LARGE-PIC-NEXT: movabsq ${{\.?LCPI[0-9]+_[0-9]+}}@GOTOFF, %rax
1055
937
; LARGE-PIC-NEXT: addss (%rcx,%rax), %xmm0
0 commit comments