1*e06fc2b2SOskar Wirga; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2 2*e06fc2b2SOskar Wirga;; Make sure internal constrained FP intrinsics still merge properly 3*e06fc2b2SOskar Wirga; RUN: opt -passes=mergefunc -S < %s | FileCheck %s 4*e06fc2b2SOskar Wirga 5*e06fc2b2SOskar Wirgadeclare float @llvm.experimental.constrained.fadd.f32(float, float, metadata, metadata) 6*e06fc2b2SOskar Wirga 7*e06fc2b2SOskar Wirgadefine float @func1(float %a, float %b) { 8*e06fc2b2SOskar Wirga; CHECK-LABEL: define float @func1 9*e06fc2b2SOskar Wirga; CHECK-SAME: (float [[A:%.*]], float [[B:%.*]]) { 10*e06fc2b2SOskar Wirga; CHECK-NEXT: [[RESULT:%.*]] = call float @llvm.experimental.constrained.fadd.f32(float [[A]], float [[B]], metadata !"round.dynamic", metadata !"fpexcept.strict") 11*e06fc2b2SOskar Wirga; CHECK-NEXT: [[RESULT_2:%.*]] = call float @llvm.experimental.constrained.fadd.f32(float [[A]], float [[B]], metadata !"round.dynamic", metadata !"fpexcept.strict") 12*e06fc2b2SOskar Wirga; CHECK-NEXT: ret float [[RESULT]] 13*e06fc2b2SOskar Wirga; 14*e06fc2b2SOskar Wirga %result = call float @llvm.experimental.constrained.fadd.f32(float %a, float %b, metadata !"round.dynamic", metadata !"fpexcept.strict") 15*e06fc2b2SOskar Wirga %result_2 = call float @llvm.experimental.constrained.fadd.f32(float %a, float %b, metadata !"round.dynamic", metadata !"fpexcept.strict") 16*e06fc2b2SOskar Wirga ret float %result 17*e06fc2b2SOskar Wirga} 18*e06fc2b2SOskar Wirga 19*e06fc2b2SOskar Wirgadefine float @func2(float %a, float %b) { 20*e06fc2b2SOskar Wirga; CHECK-LABEL: define float @func2 21*e06fc2b2SOskar Wirga; CHECK-SAME: (float [[TMP0:%.*]], float [[TMP1:%.*]]) { 22*e06fc2b2SOskar Wirga; CHECK-NEXT: [[TMP3:%.*]] = tail call float @func1(float [[TMP0]], float [[TMP1]]) 23*e06fc2b2SOskar Wirga; CHECK-NEXT: ret float [[TMP3]] 24*e06fc2b2SOskar Wirga; 25*e06fc2b2SOskar Wirga %result = call float @llvm.experimental.constrained.fadd.f32(float %a, float %b, metadata !"round.dynamic", metadata !"fpexcept.strict") 26*e06fc2b2SOskar Wirga %result_2 = call float @llvm.experimental.constrained.fadd.f32(float %a, float %b, metadata !"round.dynamic", metadata !"fpexcept.strict") 27*e06fc2b2SOskar Wirga ret float %result 28*e06fc2b2SOskar Wirga} 29