@@ -12,76 +12,77 @@ define void @caller() {
12
12
13
13
; 32BIT-LABEL: name: caller
14
14
; 32BIT: bb.0.entry:
15
- ; 32BIT: ADJCALLSTACKDOWN 88, 0, implicit-def dead $r1, implicit $r1
16
- ; 32BIT: [[LWZtoc:%[0-9]+]]:gprc = LWZtoc %const.0, $r2 :: (load (s32) from got)
17
- ; 32BIT: [[LXVW4X:%[0-9]+]]:vsrc = LXVW4X $zero, killed [[LWZtoc]] :: (load (s128) from constant-pool)
18
- ; 32BIT: [[LI:%[0-9]+]]:gprc = LI 64
19
- ; 32BIT: STXVW4X killed [[LXVW4X]], $r1, killed [[LI]] :: (store (s128))
20
- ; 32BIT: [[LIS:%[0-9]+]]:gprc = LIS 38314
21
- ; 32BIT: [[ORI:%[0-9]+]]:gprc = ORI killed [[LIS]], 63376
22
- ; 32BIT: STW killed [[ORI]], 84, $r1 :: (store (s32) into unknown-address + 4, basealign 8)
23
- ; 32BIT: [[LIS1:%[0-9]+]]:gprc = LIS 16389
24
- ; 32BIT: [[ORI1:%[0-9]+]]:gprc = ORI killed [[LIS1]], 48905
25
- ; 32BIT: STW killed [[ORI1]], 80, $r1 :: (store (s32), align 8)
26
- ; 32BIT: [[LWZtoc1:%[0-9]+]]:gprc = LWZtoc %const.1, $r2 :: (load (s32) from got)
27
- ; 32BIT: [[LXVW4X1:%[0-9]+]]:vsrc = LXVW4X $zero, killed [[LWZtoc1]] :: (load (s128) from constant-pool)
28
- ; 32BIT: [[LWZtoc2:%[0-9]+]]:gprc_and_gprc_nor0 = LWZtoc %const.2, $r2 :: (load (s32) from got)
29
- ; 32BIT: [[LFD:%[0-9]+]]:f8rc = LFD 0, killed [[LWZtoc2]] :: (load (s64) from constant-pool)
30
- ; 32BIT: [[LIS2:%[0-9]+]]:gprc = LIS 16393
31
- ; 32BIT: [[ORI2:%[0-9]+]]:gprc = ORI killed [[LIS2]], 8697
32
- ; 32BIT: [[LIS3:%[0-9]+]]:gprc = LIS 61467
33
- ; 32BIT: [[ORI3:%[0-9]+]]:gprc = ORI killed [[LIS3]], 34414
34
- ; 32BIT: [[LWZtoc3:%[0-9]+]]:gprc_and_gprc_nor0 = LWZtoc %const.3, $r2 :: (load (s32) from got)
35
- ; 32BIT: [[LFD1:%[0-9]+]]:f8rc = LFD 0, killed [[LWZtoc3]] :: (load (s64) from constant-pool)
36
- ; 32BIT: [[LI1:%[0-9]+]]:gprc = LI 55
37
- ; 32BIT: $r3 = COPY [[LI1]]
38
- ; 32BIT: $v2 = COPY [[LXVW4X1]]
39
- ; 32BIT: $f1 = COPY [[LFD]]
40
- ; 32BIT: $r9 = COPY [[ORI2]]
41
- ; 32BIT: $r10 = COPY [[ORI3]]
42
- ; 32BIT: $f2 = COPY [[LFD1]]
43
- ; 32BIT: BL_NOP <mcsymbol .callee[PR]>, csr_aix32_altivec, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $v2, implicit $f1, implicit $r9, implicit $r10, implicit $f2, implicit $r2, implicit-def $r1, implicit-def $v2
44
- ; 32BIT: ADJCALLSTACKUP 88, 0, implicit-def dead $r1, implicit $r1
45
- ; 32BIT: [[COPY:%[0-9]+]]:vsrc = COPY $v2
46
- ; 32BIT: BLR implicit $lr, implicit $rm
15
+ ; 32BIT-NEXT: ADJCALLSTACKDOWN 88, 0, implicit-def dead $r1, implicit $r1
16
+ ; 32BIT-NEXT: [[LWZtoc:%[0-9]+]]:gprc = LWZtoc %const.0, $r2 :: (load (s32) from got)
17
+ ; 32BIT-NEXT: [[LXVW4X:%[0-9]+]]:vsrc = LXVW4X $zero, killed [[LWZtoc]] :: (load (s128) from constant-pool)
18
+ ; 32BIT-NEXT: [[LI:%[0-9]+]]:gprc = LI 64
19
+ ; 32BIT-NEXT: STXVW4X killed [[LXVW4X]], $r1, killed [[LI]] :: (store (s128))
20
+ ; 32BIT-NEXT: [[LIS:%[0-9]+]]:gprc = LIS 38314
21
+ ; 32BIT-NEXT: [[ORI:%[0-9]+]]:gprc = ORI killed [[LIS]], 63376
22
+ ; 32BIT-NEXT: STW killed [[ORI]], 84, $r1 :: (store (s32) into unknown-address + 4, basealign 8)
23
+ ; 32BIT-NEXT: [[LIS1:%[0-9]+]]:gprc = LIS 16389
24
+ ; 32BIT-NEXT: [[ORI1:%[0-9]+]]:gprc = ORI killed [[LIS1]], 48905
25
+ ; 32BIT-NEXT: STW killed [[ORI1]], 80, $r1 :: (store (s32), align 8)
26
+ ; 32BIT-NEXT: [[LWZtoc1:%[0-9]+]]:gprc = LWZtoc %const.1, $r2 :: (load (s32) from got)
27
+ ; 32BIT-NEXT: [[LXVW4X1:%[0-9]+]]:vsrc = LXVW4X $zero, killed [[LWZtoc1]] :: (load (s128) from constant-pool)
28
+ ; 32BIT-NEXT: [[LWZtoc2:%[0-9]+]]:gprc_and_gprc_nor0 = LWZtoc %const.2, $r2 :: (load (s32) from got)
29
+ ; 32BIT-NEXT: [[LFD:%[0-9]+]]:f8rc = LFD 0, killed [[LWZtoc2]] :: (load (s64) from constant-pool)
30
+ ; 32BIT-NEXT: [[LIS2:%[0-9]+]]:gprc = LIS 16393
31
+ ; 32BIT-NEXT: [[ORI2:%[0-9]+]]:gprc = ORI killed [[LIS2]], 8697
32
+ ; 32BIT-NEXT: [[LIS3:%[0-9]+]]:gprc = LIS 61467
33
+ ; 32BIT-NEXT: [[ORI3:%[0-9]+]]:gprc = ORI killed [[LIS3]], 34414
34
+ ; 32BIT-NEXT: [[LWZtoc3:%[0-9]+]]:gprc_and_gprc_nor0 = LWZtoc %const.3, $r2 :: (load (s32) from got)
35
+ ; 32BIT-NEXT: [[LFD1:%[0-9]+]]:f8rc = LFD 0, killed [[LWZtoc3]] :: (load (s64) from constant-pool)
36
+ ; 32BIT-NEXT: [[LI1:%[0-9]+]]:gprc = LI 55
37
+ ; 32BIT-NEXT: $r3 = COPY [[LI1]]
38
+ ; 32BIT-NEXT: $v2 = COPY [[LXVW4X1]]
39
+ ; 32BIT-NEXT: $f1 = COPY [[LFD]]
40
+ ; 32BIT-NEXT: $r9 = COPY [[ORI2]]
41
+ ; 32BIT-NEXT: $r10 = COPY [[ORI3]]
42
+ ; 32BIT-NEXT: $f2 = COPY [[LFD1]]
43
+ ; 32BIT-NEXT: BL_NOP <mcsymbol .callee[PR]>, csr_aix32_altivec, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $v2, implicit $f1, implicit $r9, implicit $r10, implicit $f2, implicit $r2, implicit-def $r1, implicit-def $v2
44
+ ; 32BIT-NEXT: ADJCALLSTACKUP 88, 0, implicit-def dead $r1, implicit $r1
45
+ ; 32BIT-NEXT: [[COPY:%[0-9]+]]:vsrc = COPY $v2
46
+ ; 32BIT-NEXT: BLR implicit $lr, implicit $rm
47
+ ;
47
48
; 64BIT-LABEL: name: caller
48
49
; 64BIT: bb.0.entry:
49
- ; 64BIT: ADJCALLSTACKDOWN 120, 0, implicit-def dead $r1, implicit $r1
50
- ; 64BIT: [[LDtocCPT:%[0-9]+]]:g8rc = LDtocCPT %const.0, $x2 :: (load (s64) from got)
51
- ; 64BIT: [[LXVW4X:%[0-9]+]]:vsrc = LXVW4X $zero8, killed [[LDtocCPT]] :: (load (s128) from constant-pool)
52
- ; 64BIT: [[LI8_:%[0-9]+]]:g8rc = LI8 96
53
- ; 64BIT: STXVW4X killed [[LXVW4X]], $x1, killed [[LI8_]] :: (store (s128))
54
- ; 64BIT: [[LIS8_:%[0-9]+]]:g8rc = LIS8 16389
55
- ; 64BIT: [[ORI8_:%[0-9]+]]:g8rc = ORI8 killed [[LIS8_]], 48905
56
- ; 64BIT: [[RLDIC:%[0-9]+]]:g8rc = RLDIC killed [[ORI8_]], 32, 1
57
- ; 64BIT: [[ORIS8_:%[0-9]+]]:g8rc = ORIS8 killed [[RLDIC]], 38314
58
- ; 64BIT: [[ORI8_1:%[0-9]+]]:g8rc = ORI8 killed [[ORIS8_]], 63376
59
- ; 64BIT: STD killed [[ORI8_1]], 112, $x1 :: (store (s64))
60
- ; 64BIT: [[LDtocCPT1:%[0-9]+]]:g8rc = LDtocCPT %const.1, $x2 :: (load (s64) from got)
61
- ; 64BIT: [[LXVW4X1:%[0-9]+]]:vsrc = LXVW4X $zero8, killed [[LDtocCPT1]] :: (load (s128) from constant-pool)
62
- ; 64BIT: [[LD:%[0-9]+]]:g8rc = LD 104, $x1 :: (load (s64))
63
- ; 64BIT: [[LD1:%[0-9]+]]:g8rc = LD 96, $x1 :: (load (s64))
64
- ; 64BIT: [[LDtocCPT2:%[0-9]+]]:g8rc_and_g8rc_nox0 = LDtocCPT %const.2, $x2 :: (load (s64) from got)
65
- ; 64BIT: [[LFD:%[0-9]+]]:f8rc = LFD 0, killed [[LDtocCPT2]] :: (load (s64) from constant-pool)
66
- ; 64BIT: [[LDtocCPT3:%[0-9]+]]:g8rc_and_g8rc_nox0 = LDtocCPT %const.3, $x2 :: (load (s64) from got)
67
- ; 64BIT: [[LFD1:%[0-9]+]]:f8rc = LFD 0, killed [[LDtocCPT3]] :: (load (s64) from constant-pool)
68
- ; 64BIT: [[LIS8_1:%[0-9]+]]:g8rc = LIS8 16393
69
- ; 64BIT: [[ORI8_2:%[0-9]+]]:g8rc = ORI8 killed [[LIS8_1]], 8697
70
- ; 64BIT: [[RLDIC1:%[0-9]+]]:g8rc = RLDIC killed [[ORI8_2]], 32, 1
71
- ; 64BIT: [[ORIS8_1:%[0-9]+]]:g8rc = ORIS8 killed [[RLDIC1]], 61467
72
- ; 64BIT: [[ORI8_3:%[0-9]+]]:g8rc = ORI8 killed [[ORIS8_1]], 34414
73
- ; 64BIT: [[LI8_1:%[0-9]+]]:g8rc = LI8 55
74
- ; 64BIT: $x3 = COPY [[LI8_1]]
75
- ; 64BIT: $v2 = COPY [[LXVW4X1]]
76
- ; 64BIT: $f1 = COPY [[LFD]]
77
- ; 64BIT: $x7 = COPY [[ORI8_3]]
78
- ; 64BIT: $x9 = COPY [[LD1]]
79
- ; 64BIT: $x10 = COPY [[LD]]
80
- ; 64BIT: $f2 = COPY [[LFD1]]
81
- ; 64BIT: BL8_NOP <mcsymbol .callee[PR]>, csr_ppc64_altivec, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $v2, implicit $f1, implicit $x7, implicit $x9, implicit $x10, implicit $f2, implicit $x2, implicit-def $r1, implicit-def $v2
82
- ; 64BIT: ADJCALLSTACKUP 120, 0, implicit-def dead $r1, implicit $r1
83
- ; 64BIT: [[COPY:%[0-9]+]]:vsrc = COPY $v2
84
- ; 64BIT: BLR8 implicit $lr8, implicit $rm
50
+ ; 64BIT-NEXT : ADJCALLSTACKDOWN 120, 0, implicit-def dead $r1, implicit $r1
51
+ ; 64BIT-NEXT : [[LDtocCPT:%[0-9]+]]:g8rc = LDtocCPT %const.0, $x2 :: (load (s64) from got)
52
+ ; 64BIT-NEXT : [[LXVW4X:%[0-9]+]]:vsrc = LXVW4X $zero8, killed [[LDtocCPT]] :: (load (s128) from constant-pool)
53
+ ; 64BIT-NEXT : [[LI8_:%[0-9]+]]:g8rc = LI8 96
54
+ ; 64BIT-NEXT : STXVW4X killed [[LXVW4X]], $x1, killed [[LI8_]] :: (store (s128))
55
+ ; 64BIT-NEXT : [[LIS8_:%[0-9]+]]:g8rc = LIS8 16389
56
+ ; 64BIT-NEXT : [[ORI8_:%[0-9]+]]:g8rc = ORI8 killed [[LIS8_]], 48905
57
+ ; 64BIT-NEXT : [[RLDIC:%[0-9]+]]:g8rc = RLDIC killed [[ORI8_]], 32, 1
58
+ ; 64BIT-NEXT : [[ORIS8_:%[0-9]+]]:g8rc = ORIS8 killed [[RLDIC]], 38314
59
+ ; 64BIT-NEXT : [[ORI8_1:%[0-9]+]]:g8rc = ORI8 killed [[ORIS8_]], 63376
60
+ ; 64BIT-NEXT : STD killed [[ORI8_1]], 112, $x1 :: (store (s64))
61
+ ; 64BIT-NEXT : [[LDtocCPT1:%[0-9]+]]:g8rc = LDtocCPT %const.1, $x2 :: (load (s64) from got)
62
+ ; 64BIT-NEXT : [[LXVW4X1:%[0-9]+]]:vsrc = LXVW4X $zero8, killed [[LDtocCPT1]] :: (load (s128) from constant-pool)
63
+ ; 64BIT-NEXT : [[LD:%[0-9]+]]:g8rc = LD 104, $x1 :: (load (s64))
64
+ ; 64BIT-NEXT : [[LD1:%[0-9]+]]:g8rc = LD 96, $x1 :: (load (s64))
65
+ ; 64BIT-NEXT : [[LDtocCPT2:%[0-9]+]]:g8rc_and_g8rc_nox0 = LDtocCPT %const.2, $x2 :: (load (s64) from got)
66
+ ; 64BIT-NEXT : [[LFD:%[0-9]+]]:f8rc = LFD 0, killed [[LDtocCPT2]] :: (load (s64) from constant-pool)
67
+ ; 64BIT-NEXT : [[LDtocCPT3:%[0-9]+]]:g8rc_and_g8rc_nox0 = LDtocCPT %const.3, $x2 :: (load (s64) from got)
68
+ ; 64BIT-NEXT : [[LFD1:%[0-9]+]]:f8rc = LFD 0, killed [[LDtocCPT3]] :: (load (s64) from constant-pool)
69
+ ; 64BIT-NEXT : [[LIS8_1:%[0-9]+]]:g8rc = LIS8 16393
70
+ ; 64BIT-NEXT : [[ORI8_2:%[0-9]+]]:g8rc = ORI8 killed [[LIS8_1]], 8697
71
+ ; 64BIT-NEXT : [[RLDIC1:%[0-9]+]]:g8rc = RLDIC killed [[ORI8_2]], 32, 1
72
+ ; 64BIT-NEXT : [[ORIS8_1:%[0-9]+]]:g8rc = ORIS8 killed [[RLDIC1]], 61467
73
+ ; 64BIT-NEXT : [[ORI8_3:%[0-9]+]]:g8rc = ORI8 killed [[ORIS8_1]], 34414
74
+ ; 64BIT-NEXT : [[LI8_1:%[0-9]+]]:g8rc = LI8 55
75
+ ; 64BIT-NEXT : $x3 = COPY [[LI8_1]]
76
+ ; 64BIT-NEXT : $v2 = COPY [[LXVW4X1]]
77
+ ; 64BIT-NEXT : $f1 = COPY [[LFD]]
78
+ ; 64BIT-NEXT : $x7 = COPY [[ORI8_3]]
79
+ ; 64BIT-NEXT : $x9 = COPY [[LD1]]
80
+ ; 64BIT-NEXT : $x10 = COPY [[LD]]
81
+ ; 64BIT-NEXT : $f2 = COPY [[LFD1]]
82
+ ; 64BIT-NEXT : BL8_NOP <mcsymbol .callee[PR]>, csr_ppc64_altivec, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $v2, implicit $f1, implicit $x7, implicit $x9, implicit $x10, implicit $f2, implicit $x2, implicit-def $r1, implicit-def $v2
83
+ ; 64BIT-NEXT : ADJCALLSTACKUP 120, 0, implicit-def dead $r1, implicit $r1
84
+ ; 64BIT-NEXT : [[COPY:%[0-9]+]]:vsrc = COPY $v2
85
+ ; 64BIT-NEXT : BLR8 implicit $lr8, implicit $rm
85
86
entry:
86
87
%call = tail call <4 x i32 > (i32 , <4 x i32 >, double , ...) @callee (i32 signext 55 , <4 x i32 > <i32 170 , i32 187 , i32 204 , i32 221 >, double 3 .141590e+00 , <4 x i32 > <i32 10 , i32 20 , i32 30 , i32 40 >, double 2 .718280e+00 )
87
88
ret void
0 commit comments