|
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