[rtsan] Add fork/execve interceptors (#117198)
[llvm-project.git] / llvm / test / Transforms / InstSimplify / ConstProp / logf128.ll
blob82db5e4066cb1b3ca2f5d029afac77660c9d9fab
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
2 ; RUN: opt < %s -passes=instsimplify -S | FileCheck %s
4 ; REQUIRES: has_logf128
5 declare fp128 @llvm.log.f128(fp128)
6 declare fp128 @logl(fp128)
8 define fp128 @log_e_64(){
9 ; CHECK-LABEL: define fp128 @log_e_64() {
10 ; CHECK-NEXT:    ret fp128 0xL300000000000000040010A2B23F3BAB7
12   %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000004005000000000000)
13   ret fp128 %A
16 define fp128 @log_e_smallest_positive_subnormal_number(){
17 ; CHECK-LABEL: define fp128 @log_e_smallest_positive_subnormal_number() {
18 ; CHECK-NEXT:    ret fp128 0xL3000000000000000C00C654628220780
20   %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000010000000000000000)
21   ret fp128 %A
24 define fp128 @log_e_largest_subnormal_number(){
25 ; CHECK-LABEL: define fp128 @log_e_largest_subnormal_number() {
26 ; CHECK-NEXT:    ret fp128 0xLD000000000000000C00C62D918CE2421
28   %A = call fp128 @llvm.log.f128(fp128 noundef 0xLFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF)
29   ret fp128 %A
32 define fp128 @log_e_smallest_positive_normal_number(){
34 ; CHECK-LABEL: define fp128 @log_e_smallest_positive_normal_number() {
35 ; CHECK-NEXT:    ret fp128 0xLD000000000000000C00C62D918CE2421
37   %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000000001000000000000)
38   ret fp128 %A
41 define fp128 @log_e_largest_normal_number(){
42 ; CHECK-LABEL: define fp128 @log_e_largest_normal_number() {
43 ; CHECK-NEXT:    ret fp128 0xLF000000000000000400C62E42FEFA39E
45   %A = call fp128 @llvm.log.f128(fp128 noundef 0xLFFFFFFFFFFFFFFFF7FFEFFFFFFFFFFFF)
46   ret fp128 %A
49 define fp128 @log_e_largest_number_less_than_one(){
50 ; CHECK-LABEL: define fp128 @log_e_largest_number_less_than_one() {
51 ; CHECK-NEXT:    ret fp128 0xL0000000000000000BF8E000000000000
53   %A = call fp128 @llvm.log.f128(fp128 noundef 0xLFFFFFFFFFFFFFFFF3FFEFFFFFFFFFFFF)
54   ret fp128 %A
57 define fp128 @log_e_1(){
58 ; CHECK-LABEL: define fp128 @log_e_1() {
59 ; CHECK-NEXT:    ret fp128 0xL00000000000000000000000000000000
61   %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000003FFF000000000000)
62   ret fp128 %A
65 define fp128 @log_e_smallest_number_larger_than_one(){
66 ; CHECK-LABEL: define fp128 @log_e_smallest_number_larger_than_one() {
67 ; CHECK-NEXT:    ret fp128 0xL00000000000000003F8F000000000000
69   %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000013FFF000000000000)
70   ret fp128 %A
73 define fp128 @log_e_negative_2(){
74 ; CHECK-LABEL: define fp128 @log_e_negative_2() {
75 ; CHECK-NEXT:    ret fp128 0xL0000000000000000{{[7|F]}}FFF800000000000
77   %A = call fp128 @llvm.log.f128(fp128 noundef 0xL0000000000000000C000000000000000)
78   ret fp128 %A
81 define fp128 @log_e_0(){
82 ; CHECK-LABEL: define fp128 @log_e_0() {
83 ; CHECK-NEXT:    ret fp128 0xL0000000000000000FFFF000000000000
85   %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000000000000000000000)
86   ret fp128 %A
89 define fp128 @log_e_negative_0(){
90 ; CHECK-LABEL: define fp128 @log_e_negative_0() {
91 ; CHECK-NEXT:    ret fp128 0xL0000000000000000FFFF000000000000
93   %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000008000000000000000)
94   ret fp128 %A
97 define fp128 @log_e_infinity(){
98 ; CHECK-LABEL: define fp128 @log_e_infinity() {
99 ; CHECK-NEXT:    ret fp128 0xL00000000000000007FFF000000000000
101   %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000007FFF000000000000)
102   ret fp128 %A
105 define fp128 @log_e_negative_infinity(){
106 ; CHECK-LABEL: define fp128 @log_e_negative_infinity() {
107 ; CHECK-NEXT:    ret fp128 0xL0000000000000000{{[7|F]}}FFF800000000000
109   %A = call fp128 @llvm.log.f128(fp128 noundef 0xL0000000000000000FFFF000000000000)
110   ret fp128 %A
113 define fp128 @log_e_nan(){
114 ; CHECK-LABEL: define fp128 @log_e_nan() {
115 ; CHECK-NEXT:    ret fp128 0xL00000000000000007FFF800000000001
117   %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000007FFF000000000001)
118   ret fp128 %A
121 define <2 x fp128> @log_e_negative_2_vector(){
122 ; CHECK-LABEL: define <2 x fp128> @log_e_negative_2_vector() {
123 ; CHECK-NEXT:    ret <2 x fp128> <fp128 0xL0000000000000000{{[7|F]}}FFF800000000000, fp128 0xL0000000000000000{{[7|F]}}FFF800000000000>
125   %A = call <2 x fp128> @llvm.log.v2f128(<2 x fp128> <fp128 0xL0000000000000000C000000000000000, fp128 0xL0000000000000000C000000000000001>)
126   ret <2 x fp128> %A
129 define fp128 @logl_e_64(){
130 ; CHECK-LABEL: define fp128 @logl_e_64() {
131 ; CHECK-NEXT:    [[A:%.*]] = call fp128 @logl(fp128 noundef 0xL00000000000000004005000000000000)
132 ; CHECK-NEXT:    ret fp128 0xL300000000000000040010A2B23F3BAB7
134   %A = call fp128 @logl(fp128 noundef 0xL00000000000000004005000000000000)
135   ret fp128 %A
138 define fp128 @logl_e_0(){
139 ; CHECK-LABEL: define fp128 @logl_e_0() {
140 ; CHECK-NEXT:    [[A:%.*]] = call fp128 @logl(fp128 noundef 0xL00000000000000000000000000000000)
141 ; CHECK-NEXT:    ret fp128 [[A]]
143   %A = call fp128 @logl(fp128 noundef 0xL00000000000000000000000000000000)
144   ret fp128 %A
147 define fp128 @logl_e_infinity(){
148 ; CHECK-LABEL: define fp128 @logl_e_infinity() {
149 ; CHECK-NEXT:    [[A:%.*]] = call fp128 @logl(fp128 noundef 0xL00000000000000007FFF000000000000)
150 ; CHECK-NEXT:    ret fp128 0xL00000000000000007FFF000000000000
152   %A = call fp128 @logl(fp128 noundef 0xL00000000000000007FFF000000000000)
153   ret fp128 %A
156 define fp128 @logl_e_nan(){
157 ; CHECK-LABEL: define fp128 @logl_e_nan() {
158 ; CHECK-NEXT:    [[A:%.*]] = call fp128 @logl(fp128 noundef 0xL00000000000000007FFF000000000001)
159 ; CHECK-NEXT:    ret fp128 [[A]]
161   %A = call fp128 @logl(fp128 noundef 0xL00000000000000007FFF000000000001)
162   ret fp128 %A
166 define fp128 @logl_e_negative_2(){
167 ; CHECK-LABEL: define fp128 @logl_e_negative_2() {
168 ; CHECK-NEXT:    [[A:%.*]] = call fp128 @logl(fp128 noundef 0xL0000000000000000C000000000000000)
169 ; CHECK-NEXT:    ret fp128 [[A]]
171   %A = call fp128 @logl(fp128 noundef 0xL0000000000000000C000000000000000)
172   ret fp128 %A