@@ -27,23 +27,23 @@ define void @no_promote(ptr %arg) #1 {
27
27
; TUNIT-SAME: (ptr nocapture nofree writeonly [[ARG:%.*]]) #[[ATTR1:[0-9]+]] {
28
28
; TUNIT-NEXT: bb:
29
29
; TUNIT-NEXT: [[TMP:%.*]] = alloca <4 x i64>, align 32
30
- ; TUNIT-NEXT: [[TRUETMP2 :%.*]] = alloca <4 x i64>, align 32
30
+ ; TUNIT-NEXT: [[TMP2 :%.*]] = alloca <4 x i64>, align 32
31
31
; TUNIT-NEXT: call void @llvm.memset.p0.i64(ptr noalias nocapture nofree noundef nonnull writeonly align 32 dereferenceable(32) [[TMP]], i8 noundef 0, i64 noundef 32, i1 noundef false) #[[ATTR3:[0-9]+]]
32
- ; TUNIT-NEXT: call fastcc void @no_promote_avx2(ptr noalias nocapture nofree noundef nonnull writeonly align 32 dereferenceable(32) [[TRUETMP2 ]], ptr noalias nocapture nofree noundef nonnull readonly align 32 dereferenceable(32) [[TMP]]) #[[ATTR4:[0-9]+]]
33
- ; TUNIT-NEXT: [[TRUETMP4 :%.*]] = load <4 x i64>, ptr [[TRUETMP2 ]], align 32
34
- ; TUNIT-NEXT: store <4 x i64> [[TRUETMP4 ]], ptr [[ARG]], align 2
32
+ ; TUNIT-NEXT: call fastcc void @no_promote_avx2(ptr noalias nocapture nofree noundef nonnull writeonly align 32 dereferenceable(32) [[TMP2 ]], ptr noalias nocapture nofree noundef nonnull readonly align 32 dereferenceable(32) [[TMP]]) #[[ATTR4:[0-9]+]]
33
+ ; TUNIT-NEXT: [[TMP4 :%.*]] = load <4 x i64>, ptr [[TMP2 ]], align 32
34
+ ; TUNIT-NEXT: store <4 x i64> [[TMP4 ]], ptr [[ARG]], align 2
35
35
; TUNIT-NEXT: ret void
36
36
;
37
37
; CGSCC: Function Attrs: mustprogress nofree nosync nounwind willreturn memory(argmem: readwrite) uwtable
38
38
; CGSCC-LABEL: define {{[^@]+}}@no_promote
39
39
; CGSCC-SAME: (ptr nocapture nofree noundef nonnull writeonly align 2 dereferenceable(32) [[ARG:%.*]]) #[[ATTR1:[0-9]+]] {
40
40
; CGSCC-NEXT: bb:
41
41
; CGSCC-NEXT: [[TMP:%.*]] = alloca <4 x i64>, align 32
42
- ; CGSCC-NEXT: [[TRUETMP2 :%.*]] = alloca <4 x i64>, align 32
42
+ ; CGSCC-NEXT: [[TMP2 :%.*]] = alloca <4 x i64>, align 32
43
43
; CGSCC-NEXT: call void @llvm.memset.p0.i64(ptr noalias nocapture nofree noundef nonnull writeonly align 32 dereferenceable(32) [[TMP]], i8 noundef 0, i64 noundef 32, i1 noundef false) #[[ATTR3:[0-9]+]]
44
- ; CGSCC-NEXT: call fastcc void @no_promote_avx2(ptr noalias nocapture nofree noundef nonnull writeonly align 32 dereferenceable(32) [[TRUETMP2 ]], ptr noalias nocapture nofree noundef nonnull readonly align 32 dereferenceable(32) [[TMP]]) #[[ATTR4:[0-9]+]]
45
- ; CGSCC-NEXT: [[TRUETMP4 :%.*]] = load <4 x i64>, ptr [[TRUETMP2 ]], align 32
46
- ; CGSCC-NEXT: store <4 x i64> [[TRUETMP4 ]], ptr [[ARG]], align 2
44
+ ; CGSCC-NEXT: call fastcc void @no_promote_avx2(ptr noalias nocapture nofree noundef nonnull writeonly align 32 dereferenceable(32) [[TMP2 ]], ptr noalias nocapture nofree noundef nonnull readonly align 32 dereferenceable(32) [[TMP]]) #[[ATTR4:[0-9]+]]
45
+ ; CGSCC-NEXT: [[TMP4 :%.*]] = load <4 x i64>, ptr [[TMP2 ]], align 32
46
+ ; CGSCC-NEXT: store <4 x i64> [[TMP4 ]], ptr [[ARG]], align 2
47
47
; CGSCC-NEXT: ret void
48
48
;
49
49
bb:
@@ -79,25 +79,25 @@ define void @promote(ptr %arg) #0 {
79
79
; TUNIT-SAME: (ptr nocapture nofree writeonly [[ARG:%.*]]) #[[ATTR0]] {
80
80
; TUNIT-NEXT: bb:
81
81
; TUNIT-NEXT: [[TMP:%.*]] = alloca <4 x i64>, align 32
82
- ; TUNIT-NEXT: [[TRUETMP2 :%.*]] = alloca <4 x i64>, align 32
82
+ ; TUNIT-NEXT: [[TMP2 :%.*]] = alloca <4 x i64>, align 32
83
83
; TUNIT-NEXT: call void @llvm.memset.p0.i64(ptr noalias nocapture nofree noundef nonnull writeonly align 32 dereferenceable(32) [[TMP]], i8 noundef 0, i64 noundef 32, i1 noundef false) #[[ATTR3]]
84
84
; TUNIT-NEXT: [[TMP0:%.*]] = load <4 x i64>, ptr [[TMP]], align 32
85
- ; TUNIT-NEXT: call fastcc void @promote_avx2(ptr noalias nocapture nofree noundef nonnull writeonly align 32 dereferenceable(32) [[TRUETMP2 ]], <4 x i64> [[TMP0]]) #[[ATTR4]]
86
- ; TUNIT-NEXT: [[TRUETMP4 :%.*]] = load <4 x i64>, ptr [[TRUETMP2 ]], align 32
87
- ; TUNIT-NEXT: store <4 x i64> [[TRUETMP4 ]], ptr [[ARG]], align 2
85
+ ; TUNIT-NEXT: call fastcc void @promote_avx2(ptr noalias nocapture nofree noundef nonnull writeonly align 32 dereferenceable(32) [[TMP2 ]], <4 x i64> [[TMP0]]) #[[ATTR4]]
86
+ ; TUNIT-NEXT: [[TMP4 :%.*]] = load <4 x i64>, ptr [[TMP2 ]], align 32
87
+ ; TUNIT-NEXT: store <4 x i64> [[TMP4 ]], ptr [[ARG]], align 2
88
88
; TUNIT-NEXT: ret void
89
89
;
90
90
; CGSCC: Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable
91
91
; CGSCC-LABEL: define {{[^@]+}}@promote
92
92
; CGSCC-SAME: (ptr nocapture nofree noundef nonnull writeonly align 2 dereferenceable(32) [[ARG:%.*]]) #[[ATTR0]] {
93
93
; CGSCC-NEXT: bb:
94
94
; CGSCC-NEXT: [[TMP:%.*]] = alloca <4 x i64>, align 32
95
- ; CGSCC-NEXT: [[TRUETMP2 :%.*]] = alloca <4 x i64>, align 32
95
+ ; CGSCC-NEXT: [[TMP2 :%.*]] = alloca <4 x i64>, align 32
96
96
; CGSCC-NEXT: call void @llvm.memset.p0.i64(ptr noalias nocapture nofree noundef nonnull writeonly align 32 dereferenceable(32) [[TMP]], i8 noundef 0, i64 noundef 32, i1 noundef false) #[[ATTR3]]
97
97
; CGSCC-NEXT: [[TMP0:%.*]] = load <4 x i64>, ptr [[TMP]], align 32
98
- ; CGSCC-NEXT: call fastcc void @promote_avx2(ptr noalias nocapture nofree noundef nonnull writeonly align 32 dereferenceable(32) [[TRUETMP2 ]], <4 x i64> [[TMP0]]) #[[ATTR4]]
99
- ; CGSCC-NEXT: [[TRUETMP4 :%.*]] = load <4 x i64>, ptr [[TRUETMP2 ]], align 32
100
- ; CGSCC-NEXT: store <4 x i64> [[TRUETMP4 ]], ptr [[ARG]], align 2
98
+ ; CGSCC-NEXT: call fastcc void @promote_avx2(ptr noalias nocapture nofree noundef nonnull writeonly align 32 dereferenceable(32) [[TMP2 ]], <4 x i64> [[TMP0]]) #[[ATTR4]]
99
+ ; CGSCC-NEXT: [[TMP4 :%.*]] = load <4 x i64>, ptr [[TMP2 ]], align 32
100
+ ; CGSCC-NEXT: store <4 x i64> [[TMP4 ]], ptr [[ARG]], align 2
101
101
; CGSCC-NEXT: ret void
102
102
;
103
103
bb:
0 commit comments