55define i64 @expand (i32 %x ) {
66; CHECK-LABEL: expand:
77; CHECK: ## %bb.0:
8- ; CHECK-NEXT: movl $303174162, %eax ## imm = 0x12121212
9- ; CHECK-NEXT: movl $875836468, %ecx ## imm = 0x34343434
10- ; CHECK-NEXT: movl $1448498774, %edx ## imm = 0x56565656
11- ; CHECK-NEXT: xorl %eax, %edx
12- ; CHECK-NEXT: movl $2021161080, %eax ## imm = 0x78787878
13- ; CHECK-NEXT: xorl %ecx, %eax
8+ ; CHECK-NEXT: movl $1280068684, %eax ## imm = 0x4C4C4C4C
9+ ; CHECK-NEXT: movl $1145324612, %edx ## imm = 0x44444444
1410; CHECK-NEXT: retl
1511 %y1 = freeze i64 1302123111658042420 ; 0x1212121234343434
1612 %y2 = freeze i64 6221254864647256184 ; 0x5656565678787878
@@ -22,29 +18,11 @@ define i64 @expand(i32 %x) {
2218define <2 x i64 > @expand_vec (i32 %x ) nounwind {
2319; CHECK-LABEL: expand_vec:
2420; CHECK: ## %bb.0:
25- ; CHECK-NEXT: pushl %ebx
26- ; CHECK-NEXT: pushl %edi
27- ; CHECK-NEXT: pushl %esi
2821; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
29- ; CHECK-NEXT: movl $16843009, %ecx ## imm = 0x1010101
30- ; CHECK-NEXT: movl $589505315, %edx ## imm = 0x23232323
31- ; CHECK-NEXT: movl $303174162, %esi ## imm = 0x12121212
32- ; CHECK-NEXT: movl $875836468, %edi ## imm = 0x34343434
33- ; CHECK-NEXT: movl $1162167621, %ebx ## imm = 0x45454545
34- ; CHECK-NEXT: xorl %ecx, %ebx
35- ; CHECK-NEXT: movl $1734829927, %ecx ## imm = 0x67676767
36- ; CHECK-NEXT: xorl %edx, %ecx
37- ; CHECK-NEXT: movl $1448498774, %edx ## imm = 0x56565656
38- ; CHECK-NEXT: xorl %esi, %edx
39- ; CHECK-NEXT: movl $2021161080, %esi ## imm = 0x78787878
40- ; CHECK-NEXT: xorl %edi, %esi
41- ; CHECK-NEXT: movl %ebx, 12(%eax)
42- ; CHECK-NEXT: movl %ecx, 8(%eax)
43- ; CHECK-NEXT: movl %edx, 4(%eax)
44- ; CHECK-NEXT: movl %esi, (%eax)
45- ; CHECK-NEXT: popl %esi
46- ; CHECK-NEXT: popl %edi
47- ; CHECK-NEXT: popl %ebx
22+ ; CHECK-NEXT: movl $1145324612, 12(%eax) ## imm = 0x44444444
23+ ; CHECK-NEXT: movl $1145324612, 8(%eax) ## imm = 0x44444444
24+ ; CHECK-NEXT: movl $1145324612, 4(%eax) ## imm = 0x44444444
25+ ; CHECK-NEXT: movl $1280068684, (%eax) ## imm = 0x4C4C4C4C
4826; CHECK-NEXT: retl $4
4927 ; <0x1212121234343434, 0x101010123232323>
5028 %y1 = freeze <2 x i64 > <i64 1302123111658042420 , i64 72340173410738979 >
@@ -57,10 +35,7 @@ define <2 x i64> @expand_vec(i32 %x) nounwind {
5735define i10 @promote () {
5836; CHECK-LABEL: promote:
5937; CHECK: ## %bb.0:
60- ; CHECK-NEXT: movw $682, %cx ## imm = 0x2AA
61- ; CHECK-NEXT: movw $992, %ax ## imm = 0x3E0
62- ; CHECK-NEXT: addl %ecx, %eax
63- ; CHECK-NEXT: ## kill: def $ax killed $ax killed $eax
38+ ; CHECK-NEXT: movw $650, %ax ## imm = 0x28A
6439; CHECK-NEXT: retl
6540 %a = freeze i10 682
6641 %b = freeze i10 992
@@ -71,14 +46,8 @@ define i10 @promote() {
7146define <2 x i10 > @promote_vec () {
7247; CHECK-LABEL: promote_vec:
7348; CHECK: ## %bb.0:
74- ; CHECK-NEXT: movw $125, %ax
75- ; CHECK-NEXT: movw $682, %cx ## imm = 0x2AA
76- ; CHECK-NEXT: movw $393, %dx ## imm = 0x189
77- ; CHECK-NEXT: addl %eax, %edx
78- ; CHECK-NEXT: movw $992, %ax ## imm = 0x3E0
79- ; CHECK-NEXT: addl %ecx, %eax
80- ; CHECK-NEXT: ## kill: def $ax killed $ax killed $eax
81- ; CHECK-NEXT: ## kill: def $dx killed $dx killed $edx
49+ ; CHECK-NEXT: movw $1674, %ax ## imm = 0x68A
50+ ; CHECK-NEXT: movw $518, %dx ## imm = 0x206
8251; CHECK-NEXT: retl
8352 %a = freeze <2 x i10 > <i10 682 , i10 125 >
8453 %b = freeze <2 x i10 > <i10 992 , i10 393 >
0 commit comments