================ @@ -106,3 +106,57 @@ define i32 @all_imm() { %2 = sext i8 %1 to i32 ret i32 %2 } + +define i32 @scalar_i8_geps() { + ; CHECK-LABEL: define i32 @scalar_i8_geps( + ; CHECK-NEXT: [[ALLOCA:%.*]] = alloca i32, align 4 + ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds nuw i32, ptr [[ALLOCA]], i32 0 + ; CHECK-NEXT: [[LOAD:%.*]] = load i32, ptr [[GEP]], align 4 + ; CHECK-NEXT: ret i32 [[LOAD]] + %1 = alloca i8, align 4 + %2 = getelementptr inbounds nuw i8, ptr %1, i32 0 + %3 = load i8, ptr %2 + %4 = sext i8 %3 to i32 + ret i32 %4 +} + +define i32 @i8_geps_index0() { + ; CHECK-LABEL: define i32 @i8_geps_index0( + ; CHECK-NEXT: [[ALLOCA:%.*]] = alloca [2 x i32], align 8 + ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds nuw i32, ptr [[ALLOCA]], i32 0 + ; CHECK-NEXT: [[LOAD:%.*]] = load i32, ptr [[GEP]], align 4 + ; CHECK-NEXT: ret i32 [[LOAD]] + %1 = alloca [2 x i32], align 8 + %2 = getelementptr inbounds nuw i8, ptr %1, i32 0 + %3 = load i8, ptr %2 + %4 = sext i8 %3 to i32 + ret i32 %4 +} + +define i32 @i8_geps_index1() { + ; CHECK-LABEL: define i32 @i8_geps_index1( + ; CHECK-NEXT: [[ALLOCA:%.*]] = alloca [2 x i32], align 8 + ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds nuw i32, ptr [[ALLOCA]], i32 1 ---------------- farzonl wrote:
Should be fixed now. https://github.com/llvm/llvm-project/pull/142475 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits