xref: /llvm-project/llvm/test/Transforms/InstSimplify/ConstProp/logf128.ll (revision ccb2b79655217587accfa592c575f9b7267308b9)
13613b268SMatthew Devereau; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
23613b268SMatthew Devereau; RUN: opt < %s -passes=instsimplify -S | FileCheck %s
33613b268SMatthew Devereau
43613b268SMatthew Devereau; REQUIRES: has_logf128
53613b268SMatthew Devereaudeclare fp128 @llvm.log.f128(fp128)
6d38c8a7aSMatthew Devereaudeclare fp128 @logl(fp128)
73613b268SMatthew Devereau
83613b268SMatthew Devereaudefine fp128 @log_e_64(){
93613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_64() {
103613b268SMatthew Devereau; CHECK-NEXT:    ret fp128 0xL300000000000000040010A2B23F3BAB7
113613b268SMatthew Devereau;
123613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000004005000000000000)
133613b268SMatthew Devereau  ret fp128 %A
143613b268SMatthew Devereau}
153613b268SMatthew Devereau
163613b268SMatthew Devereaudefine fp128 @log_e_smallest_positive_subnormal_number(){
173613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_smallest_positive_subnormal_number() {
183613b268SMatthew Devereau; CHECK-NEXT:    ret fp128 0xL3000000000000000C00C654628220780
193613b268SMatthew Devereau;
203613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000010000000000000000)
213613b268SMatthew Devereau  ret fp128 %A
223613b268SMatthew Devereau}
233613b268SMatthew Devereau
243613b268SMatthew Devereaudefine fp128 @log_e_largest_subnormal_number(){
253613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_largest_subnormal_number() {
263613b268SMatthew Devereau; CHECK-NEXT:    ret fp128 0xLD000000000000000C00C62D918CE2421
273613b268SMatthew Devereau;
283613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xLFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF)
293613b268SMatthew Devereau  ret fp128 %A
303613b268SMatthew Devereau}
313613b268SMatthew Devereau
323613b268SMatthew Devereaudefine fp128 @log_e_smallest_positive_normal_number(){
333613b268SMatthew Devereau;
343613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_smallest_positive_normal_number() {
353613b268SMatthew Devereau; CHECK-NEXT:    ret fp128 0xLD000000000000000C00C62D918CE2421
363613b268SMatthew Devereau;
373613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000000001000000000000)
383613b268SMatthew Devereau  ret fp128 %A
393613b268SMatthew Devereau}
403613b268SMatthew Devereau
413613b268SMatthew Devereaudefine fp128 @log_e_largest_normal_number(){
423613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_largest_normal_number() {
433613b268SMatthew Devereau; CHECK-NEXT:    ret fp128 0xLF000000000000000400C62E42FEFA39E
443613b268SMatthew Devereau;
453613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xLFFFFFFFFFFFFFFFF7FFEFFFFFFFFFFFF)
463613b268SMatthew Devereau  ret fp128 %A
473613b268SMatthew Devereau}
483613b268SMatthew Devereau
493613b268SMatthew Devereaudefine fp128 @log_e_largest_number_less_than_one(){
503613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_largest_number_less_than_one() {
513613b268SMatthew Devereau; CHECK-NEXT:    ret fp128 0xL0000000000000000BF8E000000000000
523613b268SMatthew Devereau;
533613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xLFFFFFFFFFFFFFFFF3FFEFFFFFFFFFFFF)
543613b268SMatthew Devereau  ret fp128 %A
553613b268SMatthew Devereau}
563613b268SMatthew Devereau
573613b268SMatthew Devereaudefine fp128 @log_e_1(){
583613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_1() {
593613b268SMatthew Devereau; CHECK-NEXT:    ret fp128 0xL00000000000000000000000000000000
603613b268SMatthew Devereau;
613613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000003FFF000000000000)
623613b268SMatthew Devereau  ret fp128 %A
633613b268SMatthew Devereau}
643613b268SMatthew Devereau
653613b268SMatthew Devereaudefine fp128 @log_e_smallest_number_larger_than_one(){
663613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_smallest_number_larger_than_one() {
673613b268SMatthew Devereau; CHECK-NEXT:    ret fp128 0xL00000000000000003F8F000000000000
683613b268SMatthew Devereau;
693613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000013FFF000000000000)
703613b268SMatthew Devereau  ret fp128 %A
713613b268SMatthew Devereau}
723613b268SMatthew Devereau
733613b268SMatthew Devereaudefine fp128 @log_e_negative_2(){
743613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_negative_2() {
75*ccb2b796SMatt Devereau; CHECK-NEXT:    ret fp128 0xL0000000000000000{{[7|F]}}FFF800000000000
763613b268SMatthew Devereau;
773613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xL0000000000000000C000000000000000)
783613b268SMatthew Devereau  ret fp128 %A
793613b268SMatthew Devereau}
803613b268SMatthew Devereau
813613b268SMatthew Devereaudefine fp128 @log_e_0(){
823613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_0() {
833613b268SMatthew Devereau; CHECK-NEXT:    ret fp128 0xL0000000000000000FFFF000000000000
843613b268SMatthew Devereau;
853613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000000000000000000000)
863613b268SMatthew Devereau  ret fp128 %A
873613b268SMatthew Devereau}
883613b268SMatthew Devereau
893613b268SMatthew Devereaudefine fp128 @log_e_negative_0(){
903613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_negative_0() {
913613b268SMatthew Devereau; CHECK-NEXT:    ret fp128 0xL0000000000000000FFFF000000000000
923613b268SMatthew Devereau;
933613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000008000000000000000)
943613b268SMatthew Devereau  ret fp128 %A
953613b268SMatthew Devereau}
963613b268SMatthew Devereau
973613b268SMatthew Devereaudefine fp128 @log_e_infinity(){
983613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_infinity() {
993613b268SMatthew Devereau; CHECK-NEXT:    ret fp128 0xL00000000000000007FFF000000000000
1003613b268SMatthew Devereau;
1013613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000007FFF000000000000)
1023613b268SMatthew Devereau  ret fp128 %A
1033613b268SMatthew Devereau}
1043613b268SMatthew Devereau
1053613b268SMatthew Devereaudefine fp128 @log_e_negative_infinity(){
1063613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_negative_infinity() {
107*ccb2b796SMatt Devereau; CHECK-NEXT:    ret fp128 0xL0000000000000000{{[7|F]}}FFF800000000000
1083613b268SMatthew Devereau;
1093613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xL0000000000000000FFFF000000000000)
1103613b268SMatthew Devereau  ret fp128 %A
1113613b268SMatthew Devereau}
1123613b268SMatthew Devereau
1133613b268SMatthew Devereaudefine fp128 @log_e_nan(){
1143613b268SMatthew Devereau; CHECK-LABEL: define fp128 @log_e_nan() {
1153613b268SMatthew Devereau; CHECK-NEXT:    ret fp128 0xL00000000000000007FFF800000000001
1163613b268SMatthew Devereau;
1173613b268SMatthew Devereau  %A = call fp128 @llvm.log.f128(fp128 noundef 0xL00000000000000007FFF000000000001)
1183613b268SMatthew Devereau  ret fp128 %A
1193613b268SMatthew Devereau}
1203613b268SMatthew Devereau
1213613b268SMatthew Devereaudefine <2 x fp128> @log_e_negative_2_vector(){
1223613b268SMatthew Devereau; CHECK-LABEL: define <2 x fp128> @log_e_negative_2_vector() {
123*ccb2b796SMatt Devereau; CHECK-NEXT:    ret <2 x fp128> <fp128 0xL0000000000000000{{[7|F]}}FFF800000000000, fp128 0xL0000000000000000{{[7|F]}}FFF800000000000>
1243613b268SMatthew Devereau;
1253613b268SMatthew Devereau  %A = call <2 x fp128> @llvm.log.v2f128(<2 x fp128> <fp128 0xL0000000000000000C000000000000000, fp128 0xL0000000000000000C000000000000001>)
1263613b268SMatthew Devereau  ret <2 x fp128> %A
1273613b268SMatthew Devereau}
128d38c8a7aSMatthew Devereau
129d38c8a7aSMatthew Devereaudefine fp128 @logl_e_64(){
130d38c8a7aSMatthew Devereau; CHECK-LABEL: define fp128 @logl_e_64() {
131d38c8a7aSMatthew Devereau; CHECK-NEXT:    [[A:%.*]] = call fp128 @logl(fp128 noundef 0xL00000000000000004005000000000000)
132d38c8a7aSMatthew Devereau; CHECK-NEXT:    ret fp128 0xL300000000000000040010A2B23F3BAB7
133d38c8a7aSMatthew Devereau;
134d38c8a7aSMatthew Devereau  %A = call fp128 @logl(fp128 noundef 0xL00000000000000004005000000000000)
135d38c8a7aSMatthew Devereau  ret fp128 %A
136d38c8a7aSMatthew Devereau}
137d38c8a7aSMatthew Devereau
138d38c8a7aSMatthew Devereaudefine fp128 @logl_e_0(){
139d38c8a7aSMatthew Devereau; CHECK-LABEL: define fp128 @logl_e_0() {
140d38c8a7aSMatthew Devereau; CHECK-NEXT:    [[A:%.*]] = call fp128 @logl(fp128 noundef 0xL00000000000000000000000000000000)
141d38c8a7aSMatthew Devereau; CHECK-NEXT:    ret fp128 [[A]]
142d38c8a7aSMatthew Devereau;
143d38c8a7aSMatthew Devereau  %A = call fp128 @logl(fp128 noundef 0xL00000000000000000000000000000000)
144d38c8a7aSMatthew Devereau  ret fp128 %A
145d38c8a7aSMatthew Devereau}
146d38c8a7aSMatthew Devereau
147d38c8a7aSMatthew Devereaudefine fp128 @logl_e_infinity(){
148d38c8a7aSMatthew Devereau; CHECK-LABEL: define fp128 @logl_e_infinity() {
149d38c8a7aSMatthew Devereau; CHECK-NEXT:    [[A:%.*]] = call fp128 @logl(fp128 noundef 0xL00000000000000007FFF000000000000)
150d38c8a7aSMatthew Devereau; CHECK-NEXT:    ret fp128 0xL00000000000000007FFF000000000000
151d38c8a7aSMatthew Devereau;
152d38c8a7aSMatthew Devereau  %A = call fp128 @logl(fp128 noundef 0xL00000000000000007FFF000000000000)
153d38c8a7aSMatthew Devereau  ret fp128 %A
154d38c8a7aSMatthew Devereau}
155d38c8a7aSMatthew Devereau
156d38c8a7aSMatthew Devereaudefine fp128 @logl_e_nan(){
157d38c8a7aSMatthew Devereau; CHECK-LABEL: define fp128 @logl_e_nan() {
158d38c8a7aSMatthew Devereau; CHECK-NEXT:    [[A:%.*]] = call fp128 @logl(fp128 noundef 0xL00000000000000007FFF000000000001)
159d38c8a7aSMatthew Devereau; CHECK-NEXT:    ret fp128 [[A]]
160d38c8a7aSMatthew Devereau;
161d38c8a7aSMatthew Devereau  %A = call fp128 @logl(fp128 noundef 0xL00000000000000007FFF000000000001)
162d38c8a7aSMatthew Devereau  ret fp128 %A
163d38c8a7aSMatthew Devereau}
164d38c8a7aSMatthew Devereau
165d38c8a7aSMatthew Devereau
166d38c8a7aSMatthew Devereaudefine fp128 @logl_e_negative_2(){
167d38c8a7aSMatthew Devereau; CHECK-LABEL: define fp128 @logl_e_negative_2() {
168d38c8a7aSMatthew Devereau; CHECK-NEXT:    [[A:%.*]] = call fp128 @logl(fp128 noundef 0xL0000000000000000C000000000000000)
169d38c8a7aSMatthew Devereau; CHECK-NEXT:    ret fp128 [[A]]
170d38c8a7aSMatthew Devereau;
171d38c8a7aSMatthew Devereau  %A = call fp128 @logl(fp128 noundef 0xL0000000000000000C000000000000000)
172d38c8a7aSMatthew Devereau  ret fp128 %A
173d38c8a7aSMatthew Devereau}
174