1
- ; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -stop-after=machine-cp -verify-machineinstrs < %s | \
2
- ; RUN: FileCheck --check-prefixes=CHECK,64BIT %s
1
+ ; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -stop-after=machine-cp -mcpu=pwr4 \
2
+ ; RUN: -mattr=-altivec -verify-machineinstrs < %s | \
3
+ ; RUN: FileCheck %s
3
4
4
5
; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec \
5
6
; RUN: -mtriple powerpc64-ibm-aix-xcoff < %s | \
6
- ; RUN: FileCheck --check-prefixes=CHECKASM,ASM64PWR4 %s
7
+ ; RUN: FileCheck --check-prefix=ASM %s
7
8
8
9
%struct.S5 = type { [5 x i8 ] }
9
10
@@ -19,27 +20,27 @@ declare void @test_byval_5Byte(%struct.S5* byval(%struct.S5) align 1)
19
20
20
21
; CHECK-LABEL: name: call_test_byval_5Byte{{.*}}
21
22
22
- ; CHECKASM -LABEL: .call_test_byval_5Byte:
23
+ ; ASM -LABEL: .call_test_byval_5Byte:
23
24
24
25
; The DAG block permits some invalid inputs for the benefit of allowing more valid orderings.
25
- ; 64BIT : ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1
26
- ; 64BIT -NEXT: renamable $x[[REGADDR:[0-9]+]] = LDtoc @gS5, $x2 :: (load 8 from got)
27
- ; 64BIT -DAG: renamable $x[[REG1:[0-9]+]] = LWZ8 0, killed renamable $x[[REGADDR]] :: (load 4)
28
- ; 64BIT -DAG: renamable $x[[REG2:[0-9]+]] = LBZ8 4, renamable $x[[REGADDR]] :: (load 1)
29
- ; 64BIT -DAG: renamable $x3 = RLWINM8 killed renamable $x[[REG2]], 24, 0, 7
30
- ; 64BIT -DAG: renamable $x3 = RLDIMI killed renamable $x3, killed renamable $x[[REG1]], 32, 0
31
- ; 64BIT -NEXT: BL8_NOP <mcsymbol .test_byval_5Byte>, csr_aix64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x2, implicit-def $r1
32
- ; 64BIT -NEXT: ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1
26
+ ; CHECK : ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1
27
+ ; CHECK -NEXT: renamable $x[[REGADDR:[0-9]+]] = LDtoc @gS5, $x2 :: (load 8 from got)
28
+ ; CHECK -DAG: renamable $x[[REG1:[0-9]+]] = LWZ8 0, killed renamable $x[[REGADDR]] :: (load 4)
29
+ ; CHECK -DAG: renamable $x[[REG2:[0-9]+]] = LBZ8 4, renamable $x[[REGADDR]] :: (load 1)
30
+ ; CHECK -DAG: renamable $x3 = RLWINM8 killed renamable $x[[REG2]], 24, 0, 7
31
+ ; CHECK -DAG: renamable $x3 = RLDIMI killed renamable $x3, killed renamable $x[[REG1]], 32, 0
32
+ ; CHECK -NEXT: BL8_NOP <mcsymbol .test_byval_5Byte>, csr_aix64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x2, implicit-def $r1
33
+ ; CHECK -NEXT: ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1
33
34
34
35
; The DAG block permits some invalid inputs for the benefit of allowing more valid orderings.
35
- ; ASM64PWR4 : stdu 1, -112(1)
36
- ; ASM64PWR4 -NEXT: ld [[REGADDR:[0-9]+]], LC{{[0-9]+}}(2)
37
- ; ASM64PWR4 -DAG: lwz [[REG1:[0-9]+]], 0([[REGADDR]])
38
- ; ASM64PWR4 -DAG: lbz [[REG2:[0-9]+]], 4([[REGADDR]])
39
- ; ASM64PWR4 -DAG: rlwinm 3, [[REG2]], 24, 0, 7
40
- ; ASM64PWR4 -DAG: rldimi 3, [[REG1]], 32, 0
41
- ; ASM64PWR4 -NEXT: bl .test_byval_5Byte
42
- ; ASM64PWR4 -NEXT: nop
36
+ ; ASM : stdu 1, -112(1)
37
+ ; ASM -NEXT: ld [[REGADDR:[0-9]+]], LC{{[0-9]+}}(2)
38
+ ; ASM -DAG: lwz [[REG1:[0-9]+]], 0([[REGADDR]])
39
+ ; ASM -DAG: lbz [[REG2:[0-9]+]], 4([[REGADDR]])
40
+ ; ASM -DAG: rlwinm 3, [[REG2]], 24, 0, 7
41
+ ; ASM -DAG: rldimi 3, [[REG1]], 32, 0
42
+ ; ASM -NEXT: bl .test_byval_5Byte
43
+ ; ASM -NEXT: nop
43
44
44
45
%struct.S6 = type { [6 x i8 ] }
45
46
@@ -55,27 +56,27 @@ declare void @test_byval_6Byte(%struct.S6* byval(%struct.S6) align 1)
55
56
56
57
; CHECK-LABEL: name: call_test_byval_6Byte{{.*}}
57
58
58
- ; CHECKASM -LABEL: .call_test_byval_6Byte:
59
+ ; ASM -LABEL: .call_test_byval_6Byte:
59
60
60
61
; The DAG block permits some invalid inputs for the benefit of allowing more valid orderings.
61
- ; 64BIT : ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1
62
- ; 64BIT -NEXT: renamable $x[[REGADDR:[0-9]+]] = LDtoc @gS6, $x2 :: (load 8 from got)
63
- ; 64BIT -DAG: renamable $x[[REG1:[0-9]+]] = LWZ8 0, killed renamable $x[[REGADDR]] :: (load 4)
64
- ; 64BIT -DAG: renamable $x[[REG2:[0-9]+]] = LHZ8 4, renamable $x[[REGADDR]] :: (load 2)
65
- ; 64BIT -DAG: renamable $x3 = RLWINM8 killed renamable $x[[REG2]], 16, 0, 15
66
- ; 64BIT -DAG: renamable $x3 = RLDIMI killed renamable $x3, killed renamable $x[[REG1]], 32, 0
67
- ; 64BIT -NEXT: BL8_NOP <mcsymbol .test_byval_6Byte>, csr_aix64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x2, implicit-def $r1
68
- ; 64BIT -NEXT: ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1
62
+ ; CHECK : ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1
63
+ ; CHECK -NEXT: renamable $x[[REGADDR:[0-9]+]] = LDtoc @gS6, $x2 :: (load 8 from got)
64
+ ; CHECK -DAG: renamable $x[[REG1:[0-9]+]] = LWZ8 0, killed renamable $x[[REGADDR]] :: (load 4)
65
+ ; CHECK -DAG: renamable $x[[REG2:[0-9]+]] = LHZ8 4, renamable $x[[REGADDR]] :: (load 2)
66
+ ; CHECK -DAG: renamable $x3 = RLWINM8 killed renamable $x[[REG2]], 16, 0, 15
67
+ ; CHECK -DAG: renamable $x3 = RLDIMI killed renamable $x3, killed renamable $x[[REG1]], 32, 0
68
+ ; CHECK -NEXT: BL8_NOP <mcsymbol .test_byval_6Byte>, csr_aix64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x2, implicit-def $r1
69
+ ; CHECK -NEXT: ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1
69
70
70
71
; The DAG block permits some invalid inputs for the benefit of allowing more valid orderings.
71
- ; ASM64PWR4 : stdu 1, -112(1)
72
- ; ASM64PWR4 -NEXT: ld [[REGADDR:[0-9]+]], LC{{[0-9]+}}(2)
73
- ; ASM64PWR4 -DAG: lwz [[REG1:[0-9]+]], 0([[REGADDR]])
74
- ; ASM64PWR4 -DAG: lhz [[REG2:[0-9]+]], 4([[REGADDR]])
75
- ; ASM64PWR4 -DAG: rlwinm 3, [[REG2]], 16, 0, 15
76
- ; ASM64PWR4 -DAG: rldimi 3, [[REG1]], 32, 0
77
- ; ASM64PWR4 -NEXT: bl .test_byval_6Byte
78
- ; ASM64PWR4 -NEXT: nop
72
+ ; ASM : stdu 1, -112(1)
73
+ ; ASM -NEXT: ld [[REGADDR:[0-9]+]], LC{{[0-9]+}}(2)
74
+ ; ASM -DAG: lwz [[REG1:[0-9]+]], 0([[REGADDR]])
75
+ ; ASM -DAG: lhz [[REG2:[0-9]+]], 4([[REGADDR]])
76
+ ; ASM -DAG: rlwinm 3, [[REG2]], 16, 0, 15
77
+ ; ASM -DAG: rldimi 3, [[REG1]], 32, 0
78
+ ; ASM -NEXT: bl .test_byval_6Byte
79
+ ; ASM -NEXT: nop
79
80
80
81
%struct.S7 = type { [7 x i8 ] }
81
82
@@ -91,31 +92,31 @@ declare void @test_byval_7Byte(%struct.S7* byval(%struct.S7) align 1)
91
92
92
93
; CHECK-LABEL: name: call_test_byval_7Byte{{.*}}
93
94
94
- ; CHECKASM -LABEL: .call_test_byval_7Byte:
95
+ ; ASM -LABEL: .call_test_byval_7Byte:
95
96
96
97
; The DAG block permits some invalid inputs for the benefit of allowing more valid orderings.
97
- ; 64BIT : ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1
98
- ; 64BIT -NEXT: renamable $x[[REGADDR:[0-9]+]] = LDtoc @gS7, $x2 :: (load 8 from got)
99
- ; 64BIT -DAG: renamable $x[[REG1:[0-9]+]] = LWZ8 0, killed renamable $x[[REGADDR]] :: (load 4)
100
- ; 64BIT -DAG: renamable $x[[REG2:[0-9]+]] = LHZ8 4, renamable $x[[REGADDR]] :: (load 2)
101
- ; 64BIT -DAG: renamable $x[[REG3:[0-9]+]] = LBZ8 6, renamable $x[[REGADDR]] :: (load 1)
102
- ; 64BIT -DAG: renamable $x3 = RLWINM8 killed renamable $x[[REG3]], 8, 16, 23
103
- ; 64BIT -DAG: renamable $x3 = RLWIMI8 killed renamable $x3, killed renamable $x[[REG2]], 16, 0, 15
104
- ; 64BIT -DAG: renamable $x3 = RLDIMI killed renamable $x3, killed renamable $x[[REG1]], 32, 0
105
- ; 64BIT -NEXT: BL8_NOP <mcsymbol .test_byval_7Byte>, csr_aix64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x2, implicit-def $r1
106
- ; 64BIT -NEXT: ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1
98
+ ; CHECK : ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1
99
+ ; CHECK -NEXT: renamable $x[[REGADDR:[0-9]+]] = LDtoc @gS7, $x2 :: (load 8 from got)
100
+ ; CHECK -DAG: renamable $x[[REG1:[0-9]+]] = LWZ8 0, killed renamable $x[[REGADDR]] :: (load 4)
101
+ ; CHECK -DAG: renamable $x[[REG2:[0-9]+]] = LHZ8 4, renamable $x[[REGADDR]] :: (load 2)
102
+ ; CHECK -DAG: renamable $x[[REG3:[0-9]+]] = LBZ8 6, renamable $x[[REGADDR]] :: (load 1)
103
+ ; CHECK -DAG: renamable $x3 = RLWINM8 killed renamable $x[[REG3]], 8, 16, 23
104
+ ; CHECK -DAG: renamable $x3 = RLWIMI8 killed renamable $x3, killed renamable $x[[REG2]], 16, 0, 15
105
+ ; CHECK -DAG: renamable $x3 = RLDIMI killed renamable $x3, killed renamable $x[[REG1]], 32, 0
106
+ ; CHECK -NEXT: BL8_NOP <mcsymbol .test_byval_7Byte>, csr_aix64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x2, implicit-def $r1
107
+ ; CHECK -NEXT: ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1
107
108
108
109
; The DAG block permits some invalid inputs for the benefit of allowing more valid orderings.
109
- ; ASM64PWR4 : stdu 1, -112(1)
110
- ; ASM64PWR4 -NEXT: ld [[REGADDR:[0-9]+]], LC{{[0-9]+}}(2)
111
- ; ASM64PWR4 -DAG: lwz [[REG1:[0-9]+]], 0([[REGADDR]])
112
- ; ASM64PWR4 -DAG: lhz [[REG2:[0-9]+]], 4([[REGADDR]])
113
- ; ASM64PWR4 -DAG: lbz [[REG3:[0-9]+]], 6([[REGADDR]])
114
- ; ASM64PWR4 -DAG: rlwinm 3, [[REG3]], 8, 16, 23
115
- ; ASM64PWR4 -DAG: rlwimi 3, [[REG2]], 16, 0, 15
116
- ; ASM64PWR4 -DAG: rldimi 3, [[REG1]], 32, 0
117
- ; ASM64PWR4 -NEXT: bl .test_byval_7Byte
118
- ; ASM64PWR4 -NEXT: nop
110
+ ; ASM : stdu 1, -112(1)
111
+ ; ASM -NEXT: ld [[REGADDR:[0-9]+]], LC{{[0-9]+}}(2)
112
+ ; ASM -DAG: lwz [[REG1:[0-9]+]], 0([[REGADDR]])
113
+ ; ASM -DAG: lhz [[REG2:[0-9]+]], 4([[REGADDR]])
114
+ ; ASM -DAG: lbz [[REG3:[0-9]+]], 6([[REGADDR]])
115
+ ; ASM -DAG: rlwinm 3, [[REG3]], 8, 16, 23
116
+ ; ASM -DAG: rlwimi 3, [[REG2]], 16, 0, 15
117
+ ; ASM -DAG: rldimi 3, [[REG1]], 32, 0
118
+ ; ASM -NEXT: bl .test_byval_7Byte
119
+ ; ASM -NEXT: nop
119
120
120
121
%struct.S8 = type { [8 x i8 ] }
121
122
@@ -131,16 +132,16 @@ declare void @test_byval_8Byte(%struct.S8* byval(%struct.S8) align 1)
131
132
132
133
; CHECK-LABEL: name: call_test_byval_8Byte{{.*}}
133
134
134
- ; CHECKASM -LABEL: .call_test_byval_8Byte:
135
+ ; ASM -LABEL: .call_test_byval_8Byte:
135
136
136
- ; 64BIT : ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1
137
- ; 64BIT -NEXT: renamable $x[[REGADDR:[0-9]+]] = LDtoc @gS8, $x2 :: (load 8 from got)
138
- ; 64BIT -NEXT: renamable $x3 = LD 0, killed renamable $x[[REGADDR]] :: (load 8)
139
- ; 64BIT -NEXT: BL8_NOP <mcsymbol .test_byval_8Byte>, csr_aix64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x2, implicit-def $r1
140
- ; 64BIT -NEXT: ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1
137
+ ; CHECK : ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1
138
+ ; CHECK -NEXT: renamable $x[[REGADDR:[0-9]+]] = LDtoc @gS8, $x2 :: (load 8 from got)
139
+ ; CHECK -NEXT: renamable $x3 = LD 0, killed renamable $x[[REGADDR]] :: (load 8)
140
+ ; CHECK -NEXT: BL8_NOP <mcsymbol .test_byval_8Byte>, csr_aix64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x2, implicit-def $r1
141
+ ; CHECK -NEXT: ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1
141
142
142
- ; ASM64PWR4 : stdu 1, -112(1)
143
- ; ASM64PWR4 -NEXT: ld [[REGADDR:[0-9]+]], LC{{[0-9]+}}(2)
144
- ; ASM64PWR4 -NEXT: ld 3, 0([[REGADDR]])
145
- ; ASM64PWR4 -NEXT: bl .test_byval_8Byte
146
- ; ASM64PWR4 -NEXT: nop
143
+ ; ASM : stdu 1, -112(1)
144
+ ; ASM -NEXT: ld [[REGADDR:[0-9]+]], LC{{[0-9]+}}(2)
145
+ ; ASM -NEXT: ld 3, 0([[REGADDR]])
146
+ ; ASM -NEXT: bl .test_byval_8Byte
147
+ ; ASM -NEXT: nop
0 commit comments