@@ -1264,24 +1264,24 @@ _Complex float mulf(_Complex float a, _Complex float b) {
12641264// AVRFP32-SAME: float noundef [[A_COERCE0:%.*]], float noundef [[A_COERCE1:%.*]], float noundef [[B_COERCE0:%.*]], float noundef [[B_COERCE1:%.*]]) addrspace(1) #[[ATTR0]] {
12651265// AVRFP32-NEXT: entry:
12661266// AVRFP32-NEXT: [[RETVAL:%.*]] = alloca { float, float }, align 1
1267- // AVRFP32-NEXT: [[A:%.*]] = alloca { float, float }, align 4
1268- // AVRFP32-NEXT: [[B:%.*]] = alloca { float, float }, align 4
1267+ // AVRFP32-NEXT: [[A:%.*]] = alloca { float, float }, align 1
1268+ // AVRFP32-NEXT: [[B:%.*]] = alloca { float, float }, align 1
12691269// AVRFP32-NEXT: [[TMP0:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[A]], i32 0, i32 0
1270- // AVRFP32-NEXT: store float [[A_COERCE0]], ptr [[TMP0]], align 4
1270+ // AVRFP32-NEXT: store float [[A_COERCE0]], ptr [[TMP0]], align 1
12711271// AVRFP32-NEXT: [[TMP1:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[A]], i32 0, i32 1
1272- // AVRFP32-NEXT: store float [[A_COERCE1]], ptr [[TMP1]], align 4
1272+ // AVRFP32-NEXT: store float [[A_COERCE1]], ptr [[TMP1]], align 1
12731273// AVRFP32-NEXT: [[TMP2:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[B]], i32 0, i32 0
1274- // AVRFP32-NEXT: store float [[B_COERCE0]], ptr [[TMP2]], align 4
1274+ // AVRFP32-NEXT: store float [[B_COERCE0]], ptr [[TMP2]], align 1
12751275// AVRFP32-NEXT: [[TMP3:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[B]], i32 0, i32 1
1276- // AVRFP32-NEXT: store float [[B_COERCE1]], ptr [[TMP3]], align 4
1276+ // AVRFP32-NEXT: store float [[B_COERCE1]], ptr [[TMP3]], align 1
12771277// AVRFP32-NEXT: [[A_REALP:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[A]], i32 0, i32 0
1278- // AVRFP32-NEXT: [[A_REAL:%.*]] = load float, ptr [[A_REALP]], align 4
1278+ // AVRFP32-NEXT: [[A_REAL:%.*]] = load float, ptr [[A_REALP]], align 1
12791279// AVRFP32-NEXT: [[A_IMAGP:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[A]], i32 0, i32 1
1280- // AVRFP32-NEXT: [[A_IMAG:%.*]] = load float, ptr [[A_IMAGP]], align 4
1280+ // AVRFP32-NEXT: [[A_IMAG:%.*]] = load float, ptr [[A_IMAGP]], align 1
12811281// AVRFP32-NEXT: [[B_REALP:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[B]], i32 0, i32 0
1282- // AVRFP32-NEXT: [[B_REAL:%.*]] = load float, ptr [[B_REALP]], align 4
1282+ // AVRFP32-NEXT: [[B_REAL:%.*]] = load float, ptr [[B_REALP]], align 1
12831283// AVRFP32-NEXT: [[B_IMAGP:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[B]], i32 0, i32 1
1284- // AVRFP32-NEXT: [[B_IMAG:%.*]] = load float, ptr [[B_IMAGP]], align 4
1284+ // AVRFP32-NEXT: [[B_IMAG:%.*]] = load float, ptr [[B_IMAGP]], align 1
12851285// AVRFP32-NEXT: [[TMP4:%.*]] = call addrspace(1) float @llvm.fabs.f32(float [[B_REAL]])
12861286// AVRFP32-NEXT: [[TMP5:%.*]] = call addrspace(1) float @llvm.fabs.f32(float [[B_IMAG]])
12871287// AVRFP32-NEXT: [[ABS_CMP:%.*]] = fcmp ugt float [[TMP4]], [[TMP5]]
@@ -1321,24 +1321,24 @@ _Complex float mulf(_Complex float a, _Complex float b) {
13211321// AVRFP64-LABEL: define dso_local void @divd(
13221322// AVRFP64-SAME: ptr dead_on_unwind noalias writable sret({ double, double }) align 1 [[AGG_RESULT:%.*]], double noundef [[A_COERCE0:%.*]], double noundef [[A_COERCE1:%.*]], double noundef [[B_COERCE0:%.*]], double noundef [[B_COERCE1:%.*]]) addrspace(1) #[[ATTR0]] {
13231323// AVRFP64-NEXT: entry:
1324- // AVRFP64-NEXT: [[A:%.*]] = alloca { double, double }, align 8
1325- // AVRFP64-NEXT: [[B:%.*]] = alloca { double, double }, align 8
1324+ // AVRFP64-NEXT: [[A:%.*]] = alloca { double, double }, align 1
1325+ // AVRFP64-NEXT: [[B:%.*]] = alloca { double, double }, align 1
13261326// AVRFP64-NEXT: [[TMP0:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[A]], i32 0, i32 0
1327- // AVRFP64-NEXT: store double [[A_COERCE0]], ptr [[TMP0]], align 8
1327+ // AVRFP64-NEXT: store double [[A_COERCE0]], ptr [[TMP0]], align 1
13281328// AVRFP64-NEXT: [[TMP1:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[A]], i32 0, i32 1
1329- // AVRFP64-NEXT: store double [[A_COERCE1]], ptr [[TMP1]], align 8
1329+ // AVRFP64-NEXT: store double [[A_COERCE1]], ptr [[TMP1]], align 1
13301330// AVRFP64-NEXT: [[TMP2:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[B]], i32 0, i32 0
1331- // AVRFP64-NEXT: store double [[B_COERCE0]], ptr [[TMP2]], align 8
1331+ // AVRFP64-NEXT: store double [[B_COERCE0]], ptr [[TMP2]], align 1
13321332// AVRFP64-NEXT: [[TMP3:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[B]], i32 0, i32 1
1333- // AVRFP64-NEXT: store double [[B_COERCE1]], ptr [[TMP3]], align 8
1333+ // AVRFP64-NEXT: store double [[B_COERCE1]], ptr [[TMP3]], align 1
13341334// AVRFP64-NEXT: [[A_REALP:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[A]], i32 0, i32 0
1335- // AVRFP64-NEXT: [[A_REAL:%.*]] = load double, ptr [[A_REALP]], align 8
1335+ // AVRFP64-NEXT: [[A_REAL:%.*]] = load double, ptr [[A_REALP]], align 1
13361336// AVRFP64-NEXT: [[A_IMAGP:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[A]], i32 0, i32 1
1337- // AVRFP64-NEXT: [[A_IMAG:%.*]] = load double, ptr [[A_IMAGP]], align 8
1337+ // AVRFP64-NEXT: [[A_IMAG:%.*]] = load double, ptr [[A_IMAGP]], align 1
13381338// AVRFP64-NEXT: [[B_REALP:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[B]], i32 0, i32 0
1339- // AVRFP64-NEXT: [[B_REAL:%.*]] = load double, ptr [[B_REALP]], align 8
1339+ // AVRFP64-NEXT: [[B_REAL:%.*]] = load double, ptr [[B_REALP]], align 1
13401340// AVRFP64-NEXT: [[B_IMAGP:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[B]], i32 0, i32 1
1341- // AVRFP64-NEXT: [[B_IMAG:%.*]] = load double, ptr [[B_IMAGP]], align 8
1341+ // AVRFP64-NEXT: [[B_IMAG:%.*]] = load double, ptr [[B_IMAGP]], align 1
13421342// AVRFP64-NEXT: [[TMP4:%.*]] = call addrspace(1) double @llvm.fabs.f64(double [[B_REAL]])
13431343// AVRFP64-NEXT: [[TMP5:%.*]] = call addrspace(1) double @llvm.fabs.f64(double [[B_IMAG]])
13441344// AVRFP64-NEXT: [[ABS_CMP:%.*]] = fcmp ugt double [[TMP4]], [[TMP5]]
@@ -1862,24 +1862,24 @@ _Complex double divd(_Complex double a, _Complex double b) {
18621862// AVRFP32-SAME: float noundef [[A_COERCE0:%.*]], float noundef [[A_COERCE1:%.*]], float noundef [[B_COERCE0:%.*]], float noundef [[B_COERCE1:%.*]]) addrspace(1) #[[ATTR0]] {
18631863// AVRFP32-NEXT: entry:
18641864// AVRFP32-NEXT: [[RETVAL:%.*]] = alloca { float, float }, align 1
1865- // AVRFP32-NEXT: [[A:%.*]] = alloca { float, float }, align 4
1866- // AVRFP32-NEXT: [[B:%.*]] = alloca { float, float }, align 4
1865+ // AVRFP32-NEXT: [[A:%.*]] = alloca { float, float }, align 1
1866+ // AVRFP32-NEXT: [[B:%.*]] = alloca { float, float }, align 1
18671867// AVRFP32-NEXT: [[TMP0:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[A]], i32 0, i32 0
1868- // AVRFP32-NEXT: store float [[A_COERCE0]], ptr [[TMP0]], align 4
1868+ // AVRFP32-NEXT: store float [[A_COERCE0]], ptr [[TMP0]], align 1
18691869// AVRFP32-NEXT: [[TMP1:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[A]], i32 0, i32 1
1870- // AVRFP32-NEXT: store float [[A_COERCE1]], ptr [[TMP1]], align 4
1870+ // AVRFP32-NEXT: store float [[A_COERCE1]], ptr [[TMP1]], align 1
18711871// AVRFP32-NEXT: [[TMP2:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[B]], i32 0, i32 0
1872- // AVRFP32-NEXT: store float [[B_COERCE0]], ptr [[TMP2]], align 4
1872+ // AVRFP32-NEXT: store float [[B_COERCE0]], ptr [[TMP2]], align 1
18731873// AVRFP32-NEXT: [[TMP3:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[B]], i32 0, i32 1
1874- // AVRFP32-NEXT: store float [[B_COERCE1]], ptr [[TMP3]], align 4
1874+ // AVRFP32-NEXT: store float [[B_COERCE1]], ptr [[TMP3]], align 1
18751875// AVRFP32-NEXT: [[A_REALP:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[A]], i32 0, i32 0
1876- // AVRFP32-NEXT: [[A_REAL:%.*]] = load float, ptr [[A_REALP]], align 4
1876+ // AVRFP32-NEXT: [[A_REAL:%.*]] = load float, ptr [[A_REALP]], align 1
18771877// AVRFP32-NEXT: [[A_IMAGP:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[A]], i32 0, i32 1
1878- // AVRFP32-NEXT: [[A_IMAG:%.*]] = load float, ptr [[A_IMAGP]], align 4
1878+ // AVRFP32-NEXT: [[A_IMAG:%.*]] = load float, ptr [[A_IMAGP]], align 1
18791879// AVRFP32-NEXT: [[B_REALP:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[B]], i32 0, i32 0
1880- // AVRFP32-NEXT: [[B_REAL:%.*]] = load float, ptr [[B_REALP]], align 4
1880+ // AVRFP32-NEXT: [[B_REAL:%.*]] = load float, ptr [[B_REALP]], align 1
18811881// AVRFP32-NEXT: [[B_IMAGP:%.*]] = getelementptr inbounds nuw { float, float }, ptr [[B]], i32 0, i32 1
1882- // AVRFP32-NEXT: [[B_IMAG:%.*]] = load float, ptr [[B_IMAGP]], align 4
1882+ // AVRFP32-NEXT: [[B_IMAG:%.*]] = load float, ptr [[B_IMAGP]], align 1
18831883// AVRFP32-NEXT: [[MUL_AC:%.*]] = fmul float [[A_REAL]], [[B_REAL]]
18841884// AVRFP32-NEXT: [[MUL_BD:%.*]] = fmul float [[A_IMAG]], [[B_IMAG]]
18851885// AVRFP32-NEXT: [[MUL_AD:%.*]] = fmul float [[A_REAL]], [[B_IMAG]]
@@ -1896,24 +1896,24 @@ _Complex double divd(_Complex double a, _Complex double b) {
18961896// AVRFP64-LABEL: define dso_local void @muld(
18971897// AVRFP64-SAME: ptr dead_on_unwind noalias writable sret({ double, double }) align 1 [[AGG_RESULT:%.*]], double noundef [[A_COERCE0:%.*]], double noundef [[A_COERCE1:%.*]], double noundef [[B_COERCE0:%.*]], double noundef [[B_COERCE1:%.*]]) addrspace(1) #[[ATTR0]] {
18981898// AVRFP64-NEXT: entry:
1899- // AVRFP64-NEXT: [[A:%.*]] = alloca { double, double }, align 8
1900- // AVRFP64-NEXT: [[B:%.*]] = alloca { double, double }, align 8
1899+ // AVRFP64-NEXT: [[A:%.*]] = alloca { double, double }, align 1
1900+ // AVRFP64-NEXT: [[B:%.*]] = alloca { double, double }, align 1
19011901// AVRFP64-NEXT: [[TMP0:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[A]], i32 0, i32 0
1902- // AVRFP64-NEXT: store double [[A_COERCE0]], ptr [[TMP0]], align 8
1902+ // AVRFP64-NEXT: store double [[A_COERCE0]], ptr [[TMP0]], align 1
19031903// AVRFP64-NEXT: [[TMP1:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[A]], i32 0, i32 1
1904- // AVRFP64-NEXT: store double [[A_COERCE1]], ptr [[TMP1]], align 8
1904+ // AVRFP64-NEXT: store double [[A_COERCE1]], ptr [[TMP1]], align 1
19051905// AVRFP64-NEXT: [[TMP2:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[B]], i32 0, i32 0
1906- // AVRFP64-NEXT: store double [[B_COERCE0]], ptr [[TMP2]], align 8
1906+ // AVRFP64-NEXT: store double [[B_COERCE0]], ptr [[TMP2]], align 1
19071907// AVRFP64-NEXT: [[TMP3:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[B]], i32 0, i32 1
1908- // AVRFP64-NEXT: store double [[B_COERCE1]], ptr [[TMP3]], align 8
1908+ // AVRFP64-NEXT: store double [[B_COERCE1]], ptr [[TMP3]], align 1
19091909// AVRFP64-NEXT: [[A_REALP:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[A]], i32 0, i32 0
1910- // AVRFP64-NEXT: [[A_REAL:%.*]] = load double, ptr [[A_REALP]], align 8
1910+ // AVRFP64-NEXT: [[A_REAL:%.*]] = load double, ptr [[A_REALP]], align 1
19111911// AVRFP64-NEXT: [[A_IMAGP:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[A]], i32 0, i32 1
1912- // AVRFP64-NEXT: [[A_IMAG:%.*]] = load double, ptr [[A_IMAGP]], align 8
1912+ // AVRFP64-NEXT: [[A_IMAG:%.*]] = load double, ptr [[A_IMAGP]], align 1
19131913// AVRFP64-NEXT: [[B_REALP:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[B]], i32 0, i32 0
1914- // AVRFP64-NEXT: [[B_REAL:%.*]] = load double, ptr [[B_REALP]], align 8
1914+ // AVRFP64-NEXT: [[B_REAL:%.*]] = load double, ptr [[B_REALP]], align 1
19151915// AVRFP64-NEXT: [[B_IMAGP:%.*]] = getelementptr inbounds nuw { double, double }, ptr [[B]], i32 0, i32 1
1916- // AVRFP64-NEXT: [[B_IMAG:%.*]] = load double, ptr [[B_IMAGP]], align 8
1916+ // AVRFP64-NEXT: [[B_IMAG:%.*]] = load double, ptr [[B_IMAGP]], align 1
19171917// AVRFP64-NEXT: [[MUL_AC:%.*]] = fmul double [[A_REAL]], [[B_REAL]]
19181918// AVRFP64-NEXT: [[MUL_BD:%.*]] = fmul double [[A_IMAG]], [[B_IMAG]]
19191919// AVRFP64-NEXT: [[MUL_AD:%.*]] = fmul double [[A_REAL]], [[B_IMAG]]
0 commit comments