1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2
2
; RUN: llc --verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff \
3
- ; RUN: -mcpu=pwr8 < %s | FileCheck %s --check-prefixes=CHECK,CHECK32
3
+ ; RUN: -ppc-asm-full-reg-names -mcpu=pwr8 < %s | \
4
+ ; RUN: FileCheck %s --check-prefixes=CHECK,CHECK32
4
5
; RUN: llc --verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff \
5
- ; RUN: -mcpu=pwr8 < %s | FileCheck %s --check-prefixes=CHECK,CHECK64
6
+ ; RUN: -ppc-asm-full-reg-names -mcpu=pwr8 < %s | \
7
+ ; RUN: FileCheck %s --check-prefixes=CHECK,CHECK64
6
8
7
9
define ptr @lower_args (ptr %_0 , i32 %0 , i32 %1 , i32 %2 , i32 %3 , ptr %4 , ptr %5 , i64 %6 , i24 %7 ) {
8
10
; CHECK-LABEL: lower_args:
@@ -12,22 +14,48 @@ entry:
12
14
ret ptr %_0
13
15
}
14
16
15
- define i32 @lower_args2 (i32 %a , i32 %b , i32 %c , i32 %d , i32 %e , i32 %f , i32 %g , i32 %h , i24 %i ) {
16
- ; CHECK32-LABEL: lower_args2 :
17
+ define i32 @lower_args_withops_zeroext (i32 %a , i32 %b , i32 %c , i32 %d , i32 %e , i32 %f , i32 %g , i32 %h , i24 %i ) {
18
+ ; CHECK32-LABEL: lower_args_withops_zeroext :
17
19
; CHECK32: # %bb.0: # %entry
18
- ; CHECK32-NEXT: lwz 3 , 56(1 )
19
- ; CHECK32-NEXT: addi 3, 3 , 255
20
- ; CHECK32-NEXT: clrlwi 3, 3 , 8
20
+ ; CHECK32-NEXT: lwz r3 , 56(r1 )
21
+ ; CHECK32-NEXT: addi r3, r3 , 255
22
+ ; CHECK32-NEXT: clrlwi r3, r3 , 8
21
23
; CHECK32-NEXT: blr
22
24
;
23
- ; CHECK64-LABEL: lower_args2 :
25
+ ; CHECK64-LABEL: lower_args_withops_zeroext :
24
26
; CHECK64: # %bb.0: # %entry
25
- ; CHECK64-NEXT: lwz 3 , 116(1 )
26
- ; CHECK64-NEXT: addi 3, 3 , 255
27
- ; CHECK64-NEXT: clrldi 3, 3 , 40
27
+ ; CHECK64-NEXT: lwz r3 , 116(r1 )
28
+ ; CHECK64-NEXT: addi r3, r3 , 255
29
+ ; CHECK64-NEXT: clrldi r3, r3 , 40
28
30
; CHECK64-NEXT: blr
29
31
entry:
30
32
%0 = add i24 %i , 255
31
33
%1 = zext i24 %0 to i32
32
34
ret i32 %1
33
35
}
36
+
37
+ define i32 @lower_args_withops_signext (i32 %a , i32 %b , i32 %c , i32 %d , i32 %e , i32 %f , i32 %g , i32 %h , i24 signext %i ) {
38
+ ; CHECK32-LABEL: lower_args_withops_signext:
39
+ ; CHECK32: # %bb.0: # %entry
40
+ ; CHECK32-NEXT: lwz r3, 56(r1)
41
+ ; CHECK32-NEXT: slwi r3, r3, 8
42
+ ; CHECK32-NEXT: srawi r3, r3, 8
43
+ ; CHECK32-NEXT: slwi r3, r3, 8
44
+ ; CHECK32-NEXT: addi r3, r3, 22272
45
+ ; CHECK32-NEXT: srawi r3, r3, 8
46
+ ; CHECK32-NEXT: blr
47
+ ;
48
+ ; CHECK64-LABEL: lower_args_withops_signext:
49
+ ; CHECK64: # %bb.0: # %entry
50
+ ; CHECK64-NEXT: lwz r3, 116(r1)
51
+ ; CHECK64-NEXT: slwi r3, r3, 8
52
+ ; CHECK64-NEXT: srawi r3, r3, 8
53
+ ; CHECK64-NEXT: addi r3, r3, 87
54
+ ; CHECK64-NEXT: sldi r3, r3, 40
55
+ ; CHECK64-NEXT: sradi r3, r3, 40
56
+ ; CHECK64-NEXT: blr
57
+ entry:
58
+ %0 = add i24 %i , 87
59
+ %1 = sext i24 %0 to i32
60
+ ret i32 %1
61
+ }
0 commit comments