File tree Expand file tree Collapse file tree 2 files changed +26
-2
lines changed
Expand file tree Collapse file tree 2 files changed +26
-2
lines changed Original file line number Diff line number Diff line change @@ -1888,10 +1888,11 @@ void TypeAnalyzer::visitExtractElementInst(ExtractElementInst &I) {
18881888 auto &dl = fntypeinfo.Function ->getParent ()->getDataLayout ();
18891889 VectorType *vecType = cast<VectorType>(I.getVectorOperand ()->getType ());
18901890
1891- size_t size = (dl.getTypeSizeInBits (vecType->getElementType ()) + 7 ) / 8 ;
1891+ size_t bitsize = dl.getTypeSizeInBits (vecType->getElementType ());
1892+ size_t size = (bitsize + 7 ) / 8 ;
18921893
18931894 if (auto CI = dyn_cast<ConstantInt>(I.getIndexOperand ())) {
1894- size_t off = CI->getZExtValue () * size ;
1895+ size_t off = ( CI->getZExtValue () * bitsize) / 8 ;
18951896
18961897 if (direction & DOWN)
18971898 updateAnalysis (&I,
Original file line number Diff line number Diff line change 1+ ; RUN: if [ %llvmver -lt 16 ]; then %opt < %s %loadEnzyme -print-type-analysis -type-analysis-func=f -o /dev/null | FileCheck %s; fi
2+ ; RUN: %opt < %s %newLoadEnzyme -passes="print-type-analysis" -type-analysis-func=f -S -o /dev/null | FileCheck %s
3+
4+ ; ModuleID = 'test.c'
5+ source_filename = "test.c"
6+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
7+ target triple = "x86_64-unknown-linux-gnu"
8+
9+ define dso_local i1 @f (<2 x i1 > %inp ) {
10+ entry:
11+ %e0 = extractelement <2 x i1 > %inp , i32 0
12+ %e1 = extractelement <2 x i1 > %inp , i32 1
13+ %res = and i1 %e0 , %e1
14+ ret i1 %res
15+ }
16+
17+ ; CHECK: f - {[-1]:Integer} |{[-1]:Integer}:{}
18+ ; CHECK-NEXT: <2 x i1> %inp: {[-1]:Integer}
19+ ; CHECK-NEXT: entry
20+ ; CHECK-NEXT: %e0 = extractelement <2 x i1> %inp, i32 0: {[-1]:Integer}
21+ ; CHECK-NEXT: %e1 = extractelement <2 x i1> %inp, i32 1: {[-1]:Integer}
22+ ; CHECK-NEXT: %res = and i1 %e0, %e1: {[-1]:Integer}
23+ ; CHECK-NEXT: ret i1 %res: {}
You can’t perform that action at this time.
0 commit comments