@@ -13,6 +13,8 @@ $bar1 = comdat any
1313@bar2 = global i32 0 , align 4 , comdat($bar1)
1414
1515declare i32 @call_foo (i32 , ...)
16+ declare i32 @call_strictfp () strictfp
17+ declare void @llvm.memset.p0.i64 (ptr nocapture writeonly , i8 , i64 , i1 immarg)
1618
1719define i32 @foo () {
1820entry:
@@ -21,6 +23,23 @@ entry:
2123 ret i32 %0
2224}
2325
26+ define i32 @foo1 () strictfp {
27+ entry:
28+ %call = call i32 (i32 , ...) @call_foo (i32 0 )
29+ ret i32 %call
30+ }
31+
32+ define i32 @foo1_strictfp () strictfp {
33+ entry:
34+ %call = call i32 () @call_strictfp ()
35+ ret i32 %call
36+ }
37+
38+ define void @foo2 (ptr %a ) {
39+ call void @llvm.memset.p0.i64 (ptr align 1 %a , i8 1 , i64 1000 , i1 false )
40+ ret void
41+ }
42+
2443define i32 @load () {
2544entry:
2645 %0 = load i32 , ptr @bar1
@@ -49,6 +68,31 @@ entry:
4968; LARGE-SECUREPLT: addi 30, 30, .LTOC-.L0$pb@l
5069; LARGE-SECUREPLT: bl call_foo@PLT+32768
5170
71+ ; LARGE-SECUREPLT-LABEL: foo1:
72+ ; LARGE-SECUREPLT: .L1$pb:
73+ ; LARGE-SECUREPLT-NEXT: crxor 6, 6, 6
74+ ; LARGE-SECUREPLT-NEXT: mflr 30
75+ ; LARGE-SECUREPLT-NEXT: addis 30, 30, .LTOC-.L1$pb@ha
76+ ; LARGE-SECUREPLT-NEXT: addi 30, 30, .LTOC-.L1$pb@l
77+ ; LARGE-SECUREPLT-NEXT: li 3, 0
78+ ; LARGE-SECUREPLT-NEXT: bl call_foo@PLT+32768
79+
80+ ; LARGE-SECUREPLT-LABEL: foo1_strictfp:
81+ ; LARGE-SECUREPLT: .L2$pb:
82+ ; LARGE-SECUREPLT-NEXT: mflr 30
83+ ; LARGE-SECUREPLT-NEXT: addis 30, 30, .LTOC-.L2$pb@ha
84+ ; LARGE-SECUREPLT-NEXT: addi 30, 30, .LTOC-.L2$pb@l
85+ ; LARGE-SECUREPLT-NEXT: bl call_strictfp@PLT+32768
86+
87+ ; LARGE-SECUREPLT-LABEL: foo2:
88+ ; LARGE-SECUREPLT: .L3$pb:
89+ ; LARGE-SECUREPLT: mflr 30
90+ ; LARGE-SECUREPLT-NEXT: addis 30, 30, .LTOC-.L3$pb@ha
91+ ; LARGE-SECUREPLT-NEXT: addi 30, 30, .LTOC-.L3$pb@l
92+ ; LARGE-SECUREPLT: bl memset@PLT+32768
93+
94+ ; LARGE-SECUREPLT-LABEEL: load:
95+
5296; LARGE: .section .bss.bar1,"awG",@nobits,bar1,comdat
5397; LARGE: bar1:
5498; LARGE: .section .bss.bar2,"awG",@nobits,bar1,comdat
0 commit comments