From: Sanjay Patel Date: Fri, 21 Sep 2018 14:43:49 +0000 (+0000) Subject: [InstCombine] add tests for extractelement; NFC X-Git-Tag: llvmorg-8.0.0-rc1~8242 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=72d627e5ec293611741ed46271afeebf55a23e55;p=platform%2Fupstream%2Fllvm.git [InstCombine] add tests for extractelement; NFC There are folds under visitExtractElementInst() that don't appear to have any test coverage, so adding a few basic cases here. llvm-svn: 342740 --- diff --git a/llvm/test/Transforms/InstCombine/scalarization.ll b/llvm/test/Transforms/InstCombine/scalarization.ll index cac1e4d..3bfdfd2 100644 --- a/llvm/test/Transforms/InstCombine/scalarization.ll +++ b/llvm/test/Transforms/InstCombine/scalarization.ll @@ -56,3 +56,31 @@ define float @extract_element_constant_index(<4 x float> %x) { ret float %r } +define float @extract_element_variable_index(<4 x float> %x, i32 %y) { +; CHECK-LABEL: @extract_element_variable_index( +; CHECK-NEXT: [[R_LHS:%.*]] = extractelement <4 x float> [[X:%.*]], i32 [[Y:%.*]] +; CHECK-NEXT: [[R:%.*]] = fadd float [[R_LHS]], 1.000000e+00 +; CHECK-NEXT: ret float [[R]] +; + %add = fadd <4 x float> %x, + %r = extractelement <4 x float> %add, i32 %y + ret float %r +} + +define float @extract_element_splat_constant_vector_variable_index(i32 %y) { +; CHECK-LABEL: @extract_element_splat_constant_vector_variable_index( +; CHECK-NEXT: ret float 2.000000e+00 +; + %r = extractelement <4 x float> , i32 %y + ret float %r +} + +define float @extract_element_constant_vector_variable_index(i32 %y) { +; CHECK-LABEL: @extract_element_constant_vector_variable_index( +; CHECK-NEXT: [[R:%.*]] = extractelement <4 x float> , i32 [[Y:%.*]] +; CHECK-NEXT: ret float [[R]] +; + %r = extractelement <4 x float> , i32 %y + ret float %r +} +