|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
2 |
| -; RUN: opt -passes=instcombine -S < %s | FileCheck %s |
3 |
| -; RUN: opt -mtriple=x86_64-unknown-linux-gnu < %s -passes=instcombine -S | FileCheck %s --check-prefixes=CHECK,GNU |
4 |
| - |
| 2 | +; RUN: opt -passes=instcombine -S < %s | FileCheck %s |
5 | 3 |
|
6 | 4 | declare noalias ptr @malloc(i64) allockind("alloc,uninitialized") allocsize(0) "alloc-family"="malloc"
|
7 | 5 | declare noalias ptr @calloc(i64, i64) allockind("alloc,zeroed") allocsize(0,1) "alloc-family"="malloc"
|
@@ -96,40 +94,40 @@ define noalias ptr @aligned_alloc_dynamic_args(i64 %align, i64 %size) {
|
96 | 94 | }
|
97 | 95 |
|
98 | 96 | define noalias ptr @memalign_constant_size() {
|
99 |
| -; GNU-LABEL: @memalign_constant_size( |
100 |
| -; GNU-NEXT: [[CALL:%.*]] = tail call noalias align 32 dereferenceable_or_null(512) ptr @memalign(i64 32, i64 512) |
101 |
| -; GNU-NEXT: ret ptr [[CALL]] |
| 97 | +; CHECK-LABEL: @memalign_constant_size( |
| 98 | +; CHECK-NEXT: [[CALL:%.*]] = tail call noalias align 32 dereferenceable_or_null(512) ptr @memalign(i64 32, i64 512) |
| 99 | +; CHECK-NEXT: ret ptr [[CALL]] |
102 | 100 | ;
|
103 | 101 | %call = tail call noalias ptr @memalign(i64 32, i64 512)
|
104 | 102 | ret ptr %call
|
105 | 103 | }
|
106 | 104 |
|
107 | 105 | define noalias ptr @memalign_unknown_size_nonzero(i1 %c) {
|
108 |
| -; GNU-LABEL: @memalign_unknown_size_nonzero( |
109 |
| -; GNU-NEXT: [[SIZE:%.*]] = select i1 [[C:%.*]], i64 64, i64 128 |
110 |
| -; GNU-NEXT: [[CALL:%.*]] = tail call noalias align 32 ptr @memalign(i64 32, i64 [[SIZE]]) |
111 |
| -; GNU-NEXT: ret ptr [[CALL]] |
| 106 | +; CHECK-LABEL: @memalign_unknown_size_nonzero( |
| 107 | +; CHECK-NEXT: [[SIZE:%.*]] = select i1 [[C:%.*]], i64 64, i64 128 |
| 108 | +; CHECK-NEXT: [[CALL:%.*]] = tail call noalias align 32 ptr @memalign(i64 32, i64 [[SIZE]]) |
| 109 | +; CHECK-NEXT: ret ptr [[CALL]] |
112 | 110 | ;
|
113 | 111 | %size = select i1 %c, i64 64, i64 128
|
114 | 112 | %call = tail call noalias ptr @memalign(i64 32, i64 %size)
|
115 | 113 | ret ptr %call
|
116 | 114 | }
|
117 | 115 |
|
118 | 116 | define noalias ptr @memalign_unknown_size_possibly_zero(i1 %c) {
|
119 |
| -; GNU-LABEL: @memalign_unknown_size_possibly_zero( |
120 |
| -; GNU-NEXT: [[SIZE:%.*]] = select i1 [[C:%.*]], i64 64, i64 0 |
121 |
| -; GNU-NEXT: [[CALL:%.*]] = tail call noalias align 32 ptr @memalign(i64 32, i64 [[SIZE]]) |
122 |
| -; GNU-NEXT: ret ptr [[CALL]] |
| 117 | +; CHECK-LABEL: @memalign_unknown_size_possibly_zero( |
| 118 | +; CHECK-NEXT: [[SIZE:%.*]] = select i1 [[C:%.*]], i64 64, i64 0 |
| 119 | +; CHECK-NEXT: [[CALL:%.*]] = tail call noalias align 32 ptr @memalign(i64 32, i64 [[SIZE]]) |
| 120 | +; CHECK-NEXT: ret ptr [[CALL]] |
123 | 121 | ;
|
124 | 122 | %size = select i1 %c, i64 64, i64 0
|
125 | 123 | %call = tail call noalias ptr @memalign(i64 32, i64 %size)
|
126 | 124 | ret ptr %call
|
127 | 125 | }
|
128 | 126 |
|
129 | 127 | define noalias ptr @memalign_unknown_align(i64 %align) {
|
130 |
| -; GNU-LABEL: @memalign_unknown_align( |
131 |
| -; GNU-NEXT: [[CALL:%.*]] = tail call noalias dereferenceable_or_null(128) ptr @memalign(i64 [[ALIGN:%.*]], i64 128) |
132 |
| -; GNU-NEXT: ret ptr [[CALL]] |
| 128 | +; CHECK-LABEL: @memalign_unknown_align( |
| 129 | +; CHECK-NEXT: [[CALL:%.*]] = tail call noalias dereferenceable_or_null(128) ptr @memalign(i64 [[ALIGN:%.*]], i64 128) |
| 130 | +; CHECK-NEXT: ret ptr [[CALL]] |
133 | 131 | ;
|
134 | 132 | %call = tail call noalias ptr @memalign(i64 %align, i64 128)
|
135 | 133 | ret ptr %call
|
|
0 commit comments