[llvm] r371750 - [InstCombine] add tests for fptrunc; NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 12 11:00:11 PDT 2019


Author: spatel
Date: Thu Sep 12 11:00:11 2019
New Revision: 371750

URL: http://llvm.org/viewvc/llvm-project?rev=371750&view=rev
Log:
[InstCombine] add tests for fptrunc; NFC

Added:
    llvm/trunk/test/Transforms/InstCombine/fptrunc.ll

Added: llvm/trunk/test/Transforms/InstCombine/fptrunc.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/fptrunc.ll?rev=371750&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/fptrunc.ll (added)
+++ llvm/trunk/test/Transforms/InstCombine/fptrunc.ll Thu Sep 12 11:00:11 2019
@@ -0,0 +1,50 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt < %s -instcombine -S | FileCheck %s
+
+define float @fadd_fpext_op0(float %x, double %y) {
+; CHECK-LABEL: @fadd_fpext_op0(
+; CHECK-NEXT:    [[EXT:%.*]] = fpext float [[X:%.*]] to double
+; CHECK-NEXT:    [[BO:%.*]] = fadd reassoc double [[EXT]], [[Y:%.*]]
+; CHECK-NEXT:    [[R:%.*]] = fptrunc double [[BO]] to float
+; CHECK-NEXT:    ret float [[R]]
+;
+  %ext = fpext float %x to double
+  %bo = fadd reassoc double %ext, %y
+  %r = fptrunc double %bo to float
+  ret float %r
+}
+
+define half @fsub_fpext_op1(half %x, double %y) {
+; CHECK-LABEL: @fsub_fpext_op1(
+; CHECK-NEXT:    [[EXT:%.*]] = fpext half [[X:%.*]] to double
+; CHECK-NEXT:    [[BO:%.*]] = fsub reassoc double [[Y:%.*]], [[EXT]]
+; CHECK-NEXT:    [[R:%.*]] = fptrunc double [[BO]] to half
+; CHECK-NEXT:    ret half [[R]]
+;
+  %ext = fpext half %x to double
+  %bo = fsub reassoc double %y, %ext
+  %r = fptrunc double %bo to half
+  ret half %r
+}
+
+define <2 x float> @fdiv_constant_op0(<2 x double> %x) {
+; CHECK-LABEL: @fdiv_constant_op0(
+; CHECK-NEXT:    [[BO:%.*]] = fdiv reassoc <2 x double> <double 4.210000e+01, double -1.000000e-01>, [[X:%.*]]
+; CHECK-NEXT:    [[R:%.*]] = fptrunc <2 x double> [[BO]] to <2 x float>
+; CHECK-NEXT:    ret <2 x float> [[R]]
+;
+  %bo = fdiv reassoc <2 x double> <double 42.1, double -0.1>, %x
+  %r = fptrunc <2 x double> %bo to <2 x float>
+  ret <2 x float> %r
+}
+
+define <2 x half> @fmul_constant_op1(<2 x float> %x) {
+; CHECK-LABEL: @fmul_constant_op1(
+; CHECK-NEXT:    [[BO:%.*]] = fmul reassoc <2 x float> [[X:%.*]], <float 0x47EFFFFFE0000000, float 5.000000e-01>
+; CHECK-NEXT:    [[R:%.*]] = fptrunc <2 x float> [[BO]] to <2 x half>
+; CHECK-NEXT:    ret <2 x half> [[R]]
+;
+  %bo = fmul reassoc <2 x float> %x, <float 0x47efffffe0000000, float 0.5>
+  %r = fptrunc <2 x float> %bo to <2 x half>
+  ret <2 x half> %r
+}




More information about the llvm-commits mailing list