diff --git a/llvm/test/Transforms/InstCombine/fpcast.ll b/llvm/test/Transforms/InstCombine/fpcast.ll index 4cada061a8f4..7ba2ca04bcd9 100644 --- a/llvm/test/Transforms/InstCombine/fpcast.ll +++ b/llvm/test/Transforms/InstCombine/fpcast.ll @@ -29,8 +29,8 @@ define half @test3(float %a) { ret half %c } -define half @test4(float %a) { -; CHECK-LABEL: @test4( +define half @fneg_fptrunc(float %a) { +; CHECK-LABEL: @fneg_fptrunc( ; CHECK-NEXT: [[TMP1:%.*]] = fptrunc float [[A:%.*]] to half ; CHECK-NEXT: [[C:%.*]] = fsub half 0xH8000, [[TMP1]] ; CHECK-NEXT: ret half [[C]] @@ -40,6 +40,17 @@ define half @test4(float %a) { ret half %c } +define <2 x half> @fneg_fptrunc_vec_undef(<2 x float> %a) { +; CHECK-LABEL: @fneg_fptrunc_vec_undef( +; CHECK-NEXT: [[B:%.*]] = fsub <2 x float> , [[A:%.*]] +; CHECK-NEXT: [[C:%.*]] = fptrunc <2 x float> [[B]] to <2 x half> +; CHECK-NEXT: ret <2 x half> [[C]] +; + %b = fsub <2 x float> , %a + %c = fptrunc <2 x float> %b to <2 x half> + ret <2 x half> %c +} + define half @test4-fast(float %a) { ; CHECK-LABEL: @test4-fast( ; CHECK-NEXT: [[TMP1:%.*]] = fptrunc float [[A:%.*]] to half