summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-02-19 17:03:09 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-02-19 17:03:09 +0000
commitb4c95b338ba702f59e56ee34e41581a9e39666d0 (patch)
treec4bf5384b84fd6766ba95ce20c76301aaa96ca1a /llvm/lib/CodeGen
parentb48b3ae589aa67e4619defd5456dc3de28f4d0e8 (diff)
downloadbcm5719-llvm-b4c95b338ba702f59e56ee34e41581a9e39666d0.tar.gz
bcm5719-llvm-b4c95b338ba702f59e56ee34e41581a9e39666d0.zip
GlobalISel: Implement moreElementsVector for select
llvm-svn: 354354
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
index 8b9b4fda854..9b4d26d9941 100644
--- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
@@ -2405,6 +2405,18 @@ LegalizerHelper::moreElementsVector(MachineInstr &MI, unsigned TypeIdx,
moreElementsVectorSrc(MI, MoreTy, 1);
Observer.changedInstr(MI);
return Legalized;
+ case TargetOpcode::G_SELECT:
+ if (TypeIdx != 0)
+ return UnableToLegalize;
+ if (MRI.getType(MI.getOperand(1).getReg()).isVector())
+ return UnableToLegalize;
+
+ Observer.changingInstr(MI);
+ moreElementsVectorSrc(MI, MoreTy, 2);
+ moreElementsVectorSrc(MI, MoreTy, 3);
+ moreElementsVectorDst(MI, MoreTy, 0);
+ Observer.changedInstr(MI);
+ return Legalized;
default:
return UnableToLegalize;
}
OpenPOWER on IntegriCloud