Skip to content

Commit c5e8738

Browse files
committed
[FuncAttrs] Deduce noundef attrs for return values
1 parent 30dcc33 commit c5e8738

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+178
-134
lines changed

clang/test/CodeGen/X86/ms-x86-intrinsics.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ unsigned __int64 test__shiftleft128(unsigned __int64 l, unsigned __int64 h,
145145
unsigned char d) {
146146
return __shiftleft128(l, h, d);
147147
}
148-
// CHECK-X64-LABEL: define dso_local i64 @test__shiftleft128(i64 noundef %l, i64 noundef %h, i8 noundef %d)
148+
// CHECK-X64-LABEL: define dso_local noundef i64 @test__shiftleft128(i64 noundef %l, i64 noundef %h, i8 noundef %d)
149149
// CHECK-X64: = zext i8 %{{.*}} to i64
150150
// CHECK-X64: = tail call i64 @llvm.fshl.i64(i64 %h, i64 %l, i64 %{{.*}})
151151
// CHECK-X64: ret i64 %
@@ -154,7 +154,7 @@ unsigned __int64 test__shiftright128(unsigned __int64 l, unsigned __int64 h,
154154
unsigned char d) {
155155
return __shiftright128(l, h, d);
156156
}
157-
// CHECK-X64-LABEL: define dso_local i64 @test__shiftright128(i64 noundef %l, i64 noundef %h, i8 noundef %d)
157+
// CHECK-X64-LABEL: define dso_local noundef i64 @test__shiftright128(i64 noundef %l, i64 noundef %h, i8 noundef %d)
158158
// CHECK-X64: = zext i8 %{{.*}} to i64
159159
// CHECK-X64: = tail call i64 @llvm.fshr.i64(i64 %h, i64 %l, i64 %{{.*}})
160160
// CHECK-X64: ret i64 %

clang/test/CodeGen/arm-bf16-params-returns.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
__bf16 test_ret_bf16(__bf16 v) {
1212
return v;
1313
}
14-
// CHECK32-HARD: define{{.*}} arm_aapcs_vfpcc bfloat @test_ret_bf16(bfloat noundef returned %v) {{.*}} {
14+
// CHECK32-HARD: define{{.*}} arm_aapcs_vfpcc noundef bfloat @test_ret_bf16(bfloat noundef returned %v) {{.*}} {
1515
// CHECK32-HARD: ret bfloat %v
1616
// CHECK32-SOFTFP: define{{.*}} bfloat @test_ret_bf16(bfloat noundef returned %v) {{.*}} {
1717
// CHECK32-SOFTFP: ret bfloat %v
@@ -23,11 +23,11 @@ __bf16 test_ret_bf16(__bf16 v) {
2323
bfloat16x4_t test_ret_bf16x4_t(bfloat16x4_t v) {
2424
return v;
2525
}
26-
// CHECK32-HARD: define{{.*}} arm_aapcs_vfpcc <4 x bfloat> @test_ret_bf16x4_t(<4 x bfloat> noundef returned %v) {{.*}} {
26+
// CHECK32-HARD: define{{.*}} arm_aapcs_vfpcc noundef <4 x bfloat> @test_ret_bf16x4_t(<4 x bfloat> noundef returned %v) {{.*}} {
2727
// CHECK32-HARD: ret <4 x bfloat> %v
28-
// CHECK32-SOFTFP: define{{.*}} <2 x i32> @test_ret_bf16x4_t(<2 x i32> [[V0:.*]]) {{.*}} {
28+
// CHECK32-SOFTFP: define{{.*}} noundef <2 x i32> @test_ret_bf16x4_t(<2 x i32> [[V0:.*]]) {{.*}} {
2929
// CHECK32-SOFTFP: ret <2 x i32> %v
30-
// CHECK64NEON: define{{.*}} <4 x bfloat> @test_ret_bf16x4_t(<4 x bfloat> noundef returned %v) {{.*}} {
30+
// CHECK64NEON: define{{.*}} noundef <4 x bfloat> @test_ret_bf16x4_t(<4 x bfloat> noundef returned %v) {{.*}} {
3131
// CHECK64NEON: ret <4 x bfloat> %v
3232

3333
#endif

clang/test/CodeGen/arm-vector_type-params-returns.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#endif
2828

2929
// function return types
30-
// CHECK-LABEL: define dso_local <8 x half> @test_ret_v8f16(
30+
// CHECK-LABEL: define dso_local noundef <8 x half> @test_ret_v8f16(
3131
// CHECK-SAME: <8 x half> noundef returned [[V:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
3232
// CHECK-NEXT: entry:
3333
// CHECK-NEXT: ret <8 x half> [[V]]
@@ -36,7 +36,7 @@ float16x8_t test_ret_v8f16(float16x8_t v) {
3636
return v;
3737
}
3838

39-
// CHECK-LABEL: define dso_local <4 x float> @test_ret_v4f32(
39+
// CHECK-LABEL: define dso_local noundef <4 x float> @test_ret_v4f32(
4040
// CHECK-SAME: <4 x float> noundef returned [[V:%.*]]) local_unnamed_addr #[[ATTR0]] {
4141
// CHECK-NEXT: entry:
4242
// CHECK-NEXT: ret <4 x float> [[V]]
@@ -45,7 +45,7 @@ float32x4_t test_ret_v4f32(float32x4_t v) {
4545
return v;
4646
}
4747

48-
// CHECK-LABEL: define dso_local <2 x double> @test_ret_v2f64(
48+
// CHECK-LABEL: define dso_local noundef <2 x double> @test_ret_v2f64(
4949
// CHECK-SAME: <2 x double> noundef returned [[V:%.*]]) local_unnamed_addr #[[ATTR0]] {
5050
// CHECK-NEXT: entry:
5151
// CHECK-NEXT: ret <2 x double> [[V]]
@@ -54,7 +54,7 @@ float64x2_t test_ret_v2f64(float64x2_t v) {
5454
return v;
5555
}
5656

57-
// CHECK-LABEL: define dso_local <8 x bfloat> @test_ret_v8bf16(
57+
// CHECK-LABEL: define dso_local noundef <8 x bfloat> @test_ret_v8bf16(
5858
// CHECK-SAME: <8 x bfloat> noundef returned [[V:%.*]]) local_unnamed_addr #[[ATTR0]] {
5959
// CHECK-NEXT: entry:
6060
// CHECK-NEXT: ret <8 x bfloat> [[V]]
@@ -63,7 +63,7 @@ bfloat16x8_t test_ret_v8bf16(bfloat16x8_t v) {
6363
return v;
6464
}
6565

66-
// CHECK-LABEL: define dso_local <16 x i8> @test_ret_v16s8(
66+
// CHECK-LABEL: define dso_local noundef <16 x i8> @test_ret_v16s8(
6767
// CHECK-SAME: <16 x i8> noundef returned [[V:%.*]]) local_unnamed_addr #[[ATTR0]] {
6868
// CHECK-NEXT: entry:
6969
// CHECK-NEXT: ret <16 x i8> [[V]]
@@ -72,7 +72,7 @@ int8x16_t test_ret_v16s8(int8x16_t v) {
7272
return v;
7373
}
7474

75-
// CHECK-LABEL: define dso_local <8 x i16> @test_ret_v8s16(
75+
// CHECK-LABEL: define dso_local noundef <8 x i16> @test_ret_v8s16(
7676
// CHECK-SAME: <8 x i16> noundef returned [[V:%.*]]) local_unnamed_addr #[[ATTR0]] {
7777
// CHECK-NEXT: entry:
7878
// CHECK-NEXT: ret <8 x i16> [[V]]
@@ -81,7 +81,7 @@ int16x8_t test_ret_v8s16(int16x8_t v) {
8181
return v;
8282
}
8383

84-
// CHECK-LABEL: define dso_local <4 x i32> @test_ret_v32s4(
84+
// CHECK-LABEL: define dso_local noundef <4 x i32> @test_ret_v32s4(
8585
// CHECK-SAME: <4 x i32> noundef returned [[V:%.*]]) local_unnamed_addr #[[ATTR0]] {
8686
// CHECK-NEXT: entry:
8787
// CHECK-NEXT: ret <4 x i32> [[V]]
@@ -90,7 +90,7 @@ int32x4_t test_ret_v32s4(int32x4_t v) {
9090
return v;
9191
}
9292

93-
// CHECK-LABEL: define dso_local <2 x i64> @test_ret_v64s2(
93+
// CHECK-LABEL: define dso_local noundef <2 x i64> @test_ret_v64s2(
9494
// CHECK-SAME: <2 x i64> noundef returned [[V:%.*]]) local_unnamed_addr #[[ATTR0]] {
9595
// CHECK-NEXT: entry:
9696
// CHECK-NEXT: ret <2 x i64> [[V]]
@@ -99,7 +99,7 @@ int64x2_t test_ret_v64s2(int64x2_t v) {
9999
return v;
100100
}
101101

102-
// CHECK-LABEL: define dso_local <16 x i8> @test_ret_v16u8(
102+
// CHECK-LABEL: define dso_local noundef <16 x i8> @test_ret_v16u8(
103103
// CHECK-SAME: <16 x i8> noundef returned [[V:%.*]]) local_unnamed_addr #[[ATTR0]] {
104104
// CHECK-NEXT: entry:
105105
// CHECK-NEXT: ret <16 x i8> [[V]]
@@ -108,7 +108,7 @@ uint8x16_t test_ret_v16u8(uint8x16_t v) {
108108
return v;
109109
}
110110

111-
// CHECK-LABEL: define dso_local <8 x i16> @test_ret_v8u16(
111+
// CHECK-LABEL: define dso_local noundef <8 x i16> @test_ret_v8u16(
112112
// CHECK-SAME: <8 x i16> noundef returned [[V:%.*]]) local_unnamed_addr #[[ATTR0]] {
113113
// CHECK-NEXT: entry:
114114
// CHECK-NEXT: ret <8 x i16> [[V]]
@@ -117,7 +117,7 @@ uint16x8_t test_ret_v8u16(uint16x8_t v) {
117117
return v;
118118
}
119119

120-
// CHECK-LABEL: define dso_local <4 x i32> @test_ret_v32u4(
120+
// CHECK-LABEL: define dso_local noundef <4 x i32> @test_ret_v32u4(
121121
// CHECK-SAME: <4 x i32> noundef returned [[V:%.*]]) local_unnamed_addr #[[ATTR0]] {
122122
// CHECK-NEXT: entry:
123123
// CHECK-NEXT: ret <4 x i32> [[V]]
@@ -126,7 +126,7 @@ uint32x4_t test_ret_v32u4(uint32x4_t v) {
126126
return v;
127127
}
128128

129-
// CHECK-LABEL: define dso_local <2 x i64> @test_ret_v64u2(
129+
// CHECK-LABEL: define dso_local noundef <2 x i64> @test_ret_v64u2(
130130
// CHECK-SAME: <2 x i64> noundef returned [[V:%.*]]) local_unnamed_addr #[[ATTR0]] {
131131
// CHECK-NEXT: entry:
132132
// CHECK-NEXT: ret <2 x i64> [[V]]

clang/test/CodeGen/ifunc.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ void* goo_ifunc(void) {
5151
// CHECK: call i32 @foo(i32
5252
// CHECK: call void @goo()
5353

54-
// SAN: define internal nonnull ptr @foo_ifunc() #[[#FOO_IFUNC:]] {
55-
// MACSAN: define internal nonnull ptr @foo_ifunc() #[[#FOO_IFUNC:]] {
54+
// SAN: define internal nonnull {{(noundef )?}}ptr @foo_ifunc() #[[#FOO_IFUNC:]] {
55+
// MACSAN: define internal nonnull {{(noundef )?}}ptr @foo_ifunc() #[[#FOO_IFUNC:]] {
5656

57-
// SAN: define dso_local noalias ptr @goo_ifunc() #[[#GOO_IFUNC:]] {
58-
// MACSAN: define noalias ptr @goo_ifunc() #[[#GOO_IFUNC:]] {
57+
// SAN: define dso_local noalias {{(noundef )?}}ptr @goo_ifunc() #[[#GOO_IFUNC:]] {
58+
// MACSAN: define noalias {{(noundef )?}}ptr @goo_ifunc() #[[#GOO_IFUNC:]] {
5959

6060
// SAN-DAG: attributes #[[#FOO_IFUNC]] = {{{.*}} disable_sanitizer_instrumentation {{.*}}
6161
// MACSAN-DAG: attributes #[[#FOO_IFUNC]] = {{{.*}} disable_sanitizer_instrumentation {{.*}}

clang/test/CodeGen/isfpclass.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 2
22
// RUN: %clang_cc1 -triple aarch64-linux-gnu -S -O1 -emit-llvm %s -o - | FileCheck %s
33

4-
// CHECK-LABEL: define dso_local i1 @check_isfpclass_finite
4+
// CHECK-LABEL: define dso_local noundef i1 @check_isfpclass_finite
55
// CHECK-SAME: (float noundef [[X:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
66
// CHECK-NEXT: entry:
77
// CHECK-NEXT: [[TMP0:%.*]] = tail call float @llvm.fabs.f32(float [[X]])
@@ -12,7 +12,7 @@ _Bool check_isfpclass_finite(float x) {
1212
return __builtin_isfpclass(x, 504 /*Finite*/);
1313
}
1414

15-
// CHECK-LABEL: define dso_local i1 @check_isfpclass_finite_strict
15+
// CHECK-LABEL: define dso_local noundef i1 @check_isfpclass_finite_strict
1616
// CHECK-SAME: (float noundef [[X:%.*]]) local_unnamed_addr #[[ATTR2:[0-9]+]] {
1717
// CHECK-NEXT: entry:
1818
// CHECK-NEXT: [[TMP0:%.*]] = tail call i1 @llvm.is.fpclass.f32(float [[X]], i32 504) #[[ATTR6:[0-9]+]]
@@ -23,7 +23,7 @@ _Bool check_isfpclass_finite_strict(float x) {
2323
return __builtin_isfpclass(x, 504 /*Finite*/);
2424
}
2525

26-
// CHECK-LABEL: define dso_local i1 @check_isfpclass_nan_f32
26+
// CHECK-LABEL: define dso_local noundef i1 @check_isfpclass_nan_f32
2727
// CHECK-SAME: (float noundef [[X:%.*]]) local_unnamed_addr #[[ATTR3:[0-9]+]] {
2828
// CHECK-NEXT: entry:
2929
// CHECK-NEXT: [[TMP0:%.*]] = fcmp uno float [[X]], 0.000000e+00
@@ -33,7 +33,7 @@ _Bool check_isfpclass_nan_f32(float x) {
3333
return __builtin_isfpclass(x, 3 /*NaN*/);
3434
}
3535

36-
// CHECK-LABEL: define dso_local i1 @check_isfpclass_nan_f32_strict
36+
// CHECK-LABEL: define dso_local noundef i1 @check_isfpclass_nan_f32_strict
3737
// CHECK-SAME: (float noundef [[X:%.*]]) local_unnamed_addr #[[ATTR2]] {
3838
// CHECK-NEXT: entry:
3939
// CHECK-NEXT: [[TMP0:%.*]] = tail call i1 @llvm.is.fpclass.f32(float [[X]], i32 3) #[[ATTR6]]
@@ -44,7 +44,7 @@ _Bool check_isfpclass_nan_f32_strict(float x) {
4444
return __builtin_isfpclass(x, 3 /*NaN*/);
4545
}
4646

47-
// CHECK-LABEL: define dso_local i1 @check_isfpclass_snan_f64
47+
// CHECK-LABEL: define dso_local noundef i1 @check_isfpclass_snan_f64
4848
// CHECK-SAME: (double noundef [[X:%.*]]) local_unnamed_addr #[[ATTR0]] {
4949
// CHECK-NEXT: entry:
5050
// CHECK-NEXT: [[TMP0:%.*]] = tail call i1 @llvm.is.fpclass.f64(double [[X]], i32 1)
@@ -54,7 +54,7 @@ _Bool check_isfpclass_snan_f64(double x) {
5454
return __builtin_isfpclass(x, 1 /*SNaN*/);
5555
}
5656

57-
// CHECK-LABEL: define dso_local i1 @check_isfpclass_snan_f64_strict
57+
// CHECK-LABEL: define dso_local noundef i1 @check_isfpclass_snan_f64_strict
5858
// CHECK-SAME: (double noundef [[X:%.*]]) local_unnamed_addr #[[ATTR2]] {
5959
// CHECK-NEXT: entry:
6060
// CHECK-NEXT: [[TMP0:%.*]] = tail call i1 @llvm.is.fpclass.f64(double [[X]], i32 1) #[[ATTR6]]
@@ -65,7 +65,7 @@ _Bool check_isfpclass_snan_f64_strict(double x) {
6565
return __builtin_isfpclass(x, 1 /*NaN*/);
6666
}
6767

68-
// CHECK-LABEL: define dso_local i1 @check_isfpclass_zero_f16
68+
// CHECK-LABEL: define dso_local noundef i1 @check_isfpclass_zero_f16
6969
// CHECK-SAME: (half noundef [[X:%.*]]) local_unnamed_addr #[[ATTR3]] {
7070
// CHECK-NEXT: entry:
7171
// CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq half [[X]], 0xH0000
@@ -75,7 +75,7 @@ _Bool check_isfpclass_zero_f16(_Float16 x) {
7575
return __builtin_isfpclass(x, 96 /*Zero*/);
7676
}
7777

78-
// CHECK-LABEL: define dso_local i1 @check_isfpclass_zero_f16_strict
78+
// CHECK-LABEL: define dso_local noundef i1 @check_isfpclass_zero_f16_strict
7979
// CHECK-SAME: (half noundef [[X:%.*]]) local_unnamed_addr #[[ATTR2]] {
8080
// CHECK-NEXT: entry:
8181
// CHECK-NEXT: [[TMP0:%.*]] = tail call i1 @llvm.is.fpclass.f16(half [[X]], i32 96) #[[ATTR6]]
@@ -86,7 +86,7 @@ _Bool check_isfpclass_zero_f16_strict(_Float16 x) {
8686
return __builtin_isfpclass(x, 96 /*Zero*/);
8787
}
8888

89-
// CHECK-LABEL: define dso_local i1 @check_isnan
89+
// CHECK-LABEL: define dso_local noundef i1 @check_isnan
9090
// CHECK-SAME: (float noundef [[X:%.*]]) local_unnamed_addr #[[ATTR2]] {
9191
// CHECK-NEXT: entry:
9292
// CHECK-NEXT: [[TMP0:%.*]] = tail call i1 @llvm.is.fpclass.f32(float [[X]], i32 3) #[[ATTR6]]
@@ -97,7 +97,7 @@ _Bool check_isnan(float x) {
9797
return __builtin_isnan(x);
9898
}
9999

100-
// CHECK-LABEL: define dso_local i1 @check_isinf
100+
// CHECK-LABEL: define dso_local noundef i1 @check_isinf
101101
// CHECK-SAME: (float noundef [[X:%.*]]) local_unnamed_addr #[[ATTR2]] {
102102
// CHECK-NEXT: entry:
103103
// CHECK-NEXT: [[TMP0:%.*]] = tail call i1 @llvm.is.fpclass.f32(float [[X]], i32 516) #[[ATTR6]]
@@ -108,7 +108,7 @@ _Bool check_isinf(float x) {
108108
return __builtin_isinf(x);
109109
}
110110

111-
// CHECK-LABEL: define dso_local i1 @check_isfinite
111+
// CHECK-LABEL: define dso_local noundef i1 @check_isfinite
112112
// CHECK-SAME: (float noundef [[X:%.*]]) local_unnamed_addr #[[ATTR2]] {
113113
// CHECK-NEXT: entry:
114114
// CHECK-NEXT: [[TMP0:%.*]] = tail call i1 @llvm.is.fpclass.f32(float [[X]], i32 504) #[[ATTR6]]
@@ -119,7 +119,7 @@ _Bool check_isfinite(float x) {
119119
return __builtin_isfinite(x);
120120
}
121121

122-
// CHECK-LABEL: define dso_local i1 @check_isnormal
122+
// CHECK-LABEL: define dso_local noundef i1 @check_isnormal
123123
// CHECK-SAME: (float noundef [[X:%.*]]) local_unnamed_addr #[[ATTR2]] {
124124
// CHECK-NEXT: entry:
125125
// CHECK-NEXT: [[TMP0:%.*]] = tail call i1 @llvm.is.fpclass.f32(float [[X]], i32 264) #[[ATTR6]]
@@ -136,7 +136,7 @@ typedef double __attribute__((ext_vector_type(4))) double4;
136136
typedef int __attribute__((ext_vector_type(4))) int4;
137137
typedef long __attribute__((ext_vector_type(4))) long4;
138138

139-
// CHECK-LABEL: define dso_local <4 x i32> @check_isfpclass_nan_v4f32
139+
// CHECK-LABEL: define dso_local noundef <4 x i32> @check_isfpclass_nan_v4f32
140140
// CHECK-SAME: (<4 x float> noundef [[X:%.*]]) local_unnamed_addr #[[ATTR3]] {
141141
// CHECK-NEXT: entry:
142142
// CHECK-NEXT: [[TMP0:%.*]] = fcmp uno <4 x float> [[X]], zeroinitializer
@@ -147,7 +147,7 @@ int4 check_isfpclass_nan_v4f32(float4 x) {
147147
return __builtin_isfpclass(x, 3 /*NaN*/);
148148
}
149149

150-
// CHECK-LABEL: define dso_local <4 x i32> @check_isfpclass_nan_strict_v4f32
150+
// CHECK-LABEL: define dso_local noundef <4 x i32> @check_isfpclass_nan_strict_v4f32
151151
// CHECK-SAME: (<4 x float> noundef [[X:%.*]]) local_unnamed_addr #[[ATTR2]] {
152152
// CHECK-NEXT: entry:
153153
// CHECK-NEXT: [[TMP0:%.*]] = tail call <4 x i1> @llvm.is.fpclass.v4f32(<4 x float> [[X]], i32 3) #[[ATTR6]]

clang/test/CodeGen/ms-mixed-ptr-sizes.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ void test_other(struct Foo *f, __attribute__((address_space(10))) int *i) {
4949
}
5050

5151
int test_compare1(int *__ptr32 __uptr i, int *__ptr64 j) {
52-
// ALL-LABEL: define dso_local i32 @test_compare1
52+
// ALL-LABEL: define dso_local noundef i32 @test_compare1
5353
// X64: %{{.+}} = addrspacecast ptr %j to ptr addrspace(271)
5454
// X64: %cmp = icmp eq ptr addrspace(271) %{{.+}}, %i
5555
// X86: %{{.+}} = addrspacecast ptr addrspace(272) %j to ptr addrspace(271)
@@ -58,7 +58,7 @@ int test_compare1(int *__ptr32 __uptr i, int *__ptr64 j) {
5858
}
5959

6060
int test_compare2(int *__ptr32 __sptr i, int *__ptr64 j) {
61-
// ALL-LABEL: define dso_local i32 @test_compare2
61+
// ALL-LABEL: define dso_local noundef i32 @test_compare2
6262
// X64: %{{.+}} = addrspacecast ptr %j to ptr addrspace(270)
6363
// X64: %cmp = icmp eq ptr addrspace(270) %{{.+}}, %i
6464
// X86: %{{.+}} = addrspacecast ptr addrspace(272) %j to ptr
@@ -67,7 +67,7 @@ int test_compare2(int *__ptr32 __sptr i, int *__ptr64 j) {
6767
}
6868

6969
int test_compare3(int *__ptr32 __uptr i, int *__ptr64 j) {
70-
// ALL-LABEL: define dso_local i32 @test_compare3
70+
// ALL-LABEL: define dso_local noundef i32 @test_compare3
7171
// X64: %{{.+}} = addrspacecast ptr addrspace(271) %i to ptr
7272
// X64: %cmp = icmp eq ptr %{{.+}}, %j
7373
// X86: %{{.+}} = addrspacecast ptr addrspace(271) %i to ptr addrspace(272)
@@ -76,7 +76,7 @@ int test_compare3(int *__ptr32 __uptr i, int *__ptr64 j) {
7676
}
7777

7878
int test_compare4(int *__ptr32 __sptr i, int *__ptr64 j) {
79-
// ALL-LABEL: define dso_local i32 @test_compare4
79+
// ALL-LABEL: define dso_local noundef i32 @test_compare4
8080
// X64: %{{.+}} = addrspacecast ptr addrspace(270) %i to ptr
8181
// X64: %cmp = icmp eq ptr %{{.+}}, %j
8282
// X86: %{{.+}} = addrspacecast ptr %i to ptr addrspace(272)

clang/test/CodeGenCUDA/link-builtin-bitcode-denormal-fp-mode.cu

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,16 +111,16 @@ __global__ void kernel_f64(double* out, double* a, double* b, double* c) {
111111
}
112112
}
113113

114-
// INTERNALIZE: define internal half @do_f16_stuff({{.*}}) #[[$FUNCATTR:[0-9]+]]
115-
// INTERNALIZE: define internal float @do_f32_stuff({{.*}}) #[[$FUNCATTR]]
116-
// INTERNALIZE: define internal double @do_f64_stuff({{.*}}) #[[$FUNCATTR]]
117-
// INTERNALIZE: define internal float @weak_do_f32_stuff({{.*}}) #[[$WEAK_FUNCATTR:[0-9]+]]
114+
// INTERNALIZE: define internal {{(noundef )?}}half @do_f16_stuff({{.*}}) #[[$FUNCATTR:[0-9]+]]
115+
// INTERNALIZE: define internal {{(noundef )?}}float @do_f32_stuff({{.*}}) #[[$FUNCATTR]]
116+
// INTERNALIZE: define internal {{(noundef )?}}double @do_f64_stuff({{.*}}) #[[$FUNCATTR]]
117+
// INTERNALIZE: define internal {{(noundef )?}}float @weak_do_f32_stuff({{.*}}) #[[$WEAK_FUNCATTR:[0-9]+]]
118118

119119

120-
// NOINTERNALIZE: define dso_local half @do_f16_stuff({{.*}}) #[[$FUNCATTR:[0-9]+]]
121-
// NOINTERNALIZE: define dso_local float @do_f32_stuff({{.*}}) #[[$FUNCATTR]]
122-
// NOINTERNALIZE: define dso_local double @do_f64_stuff({{.*}}) #[[$FUNCATTR]]
123-
// NOINTERNALIZE: define weak float @weak_do_f32_stuff({{.*}}) #[[$WEAK_FUNCATTR:[0-9]+]]
120+
// NOINTERNALIZE: define dso_local {{(noundef )?}}half @do_f16_stuff({{.*}}) #[[$FUNCATTR:[0-9]+]]
121+
// NOINTERNALIZE: define dso_local {{(noundef )?}}float @do_f32_stuff({{.*}}) #[[$FUNCATTR]]
122+
// NOINTERNALIZE: define dso_local {{(noundef )?}}double @do_f64_stuff({{.*}}) #[[$FUNCATTR]]
123+
// NOINTERNALIZE: define weak {{(noundef )?}}float @weak_do_f32_stuff({{.*}}) #[[$WEAK_FUNCATTR:[0-9]+]]
124124

125125

126126

0 commit comments

Comments
 (0)