Skip to content

[InstCombine] FMF flags should not be propagated #121432

@dtcxzyw

Description

@dtcxzyw

Alive2: https://alive2.llvm.org/ce/z/ajCxTh

define float @src1(float noundef %x, float noundef %y, float noundef %z) {
  %s = call float @llvm.copysign.f32(float %y, float %z)
  %r = call nnan float @llvm.copysign.f32(float %x, float %s)
  ret float %r
}

define float @tgt1(float noundef %x, float noundef %y, float noundef %z) {
  %r = call nnan float @llvm.copysign.f32(float %x, float %z)
  ret float %r
}

define float @src2(float noundef %x, float noundef %y, float noundef %z) {
  %s = call float @llvm.copysign.f32(float %y, float %z)
  %r = call ninf float @llvm.copysign.f32(float %x, float %s)
  ret float %r
}

define float @tgt2(float noundef %x, float noundef %y, float noundef %z) {
  %r = call ninf float @llvm.copysign.f32(float %x, float %z)
  ret float %r
}

define float @src3(float noundef %x, float noundef %y, float noundef %z) {
  %s = call float @llvm.copysign.f32(float %y, float %z)
  %r = call nsz float @llvm.copysign.f32(float %x, float %s)
  ret float %r
}

define float @tgt3(float noundef %x, float noundef %y, float noundef %z) {
  %r = call nsz float @llvm.copysign.f32(float %x, float %z)
  ret float %r
}

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions