@@ -1264,24 +1264,24 @@ _Complex float mulf(_Complex float a, _Complex float b) {
1264
1264
// AVRFP32-SAME: float noundef [[A_COERCE0:%.*]], float noundef [[A_COERCE1:%.*]], float noundef [[B_COERCE0:%.*]], float noundef [[B_COERCE1:%.*]]) addrspace(1) #[[ATTR0]] {
1265
1265
// AVRFP32-NEXT: entry:
1266
1266
// 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
1269
1269
// 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
1271
1271
// 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
1273
1273
// 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
1275
1275
// 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
1277
1277
// 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
1279
1279
// 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
1281
1281
// 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
1283
1283
// 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
1285
1285
// AVRFP32-NEXT: [[TMP4:%.*]] = call addrspace(1) float @llvm.fabs.f32(float [[B_REAL]])
1286
1286
// AVRFP32-NEXT: [[TMP5:%.*]] = call addrspace(1) float @llvm.fabs.f32(float [[B_IMAG]])
1287
1287
// AVRFP32-NEXT: [[ABS_CMP:%.*]] = fcmp ugt float [[TMP4]], [[TMP5]]
@@ -1321,24 +1321,24 @@ _Complex float mulf(_Complex float a, _Complex float b) {
1321
1321
// AVRFP64-LABEL: define dso_local void @divd(
1322
1322
// 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]] {
1323
1323
// 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
1326
1326
// 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
1328
1328
// 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
1330
1330
// 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
1332
1332
// 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
1334
1334
// 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
1336
1336
// 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
1338
1338
// 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
1340
1340
// 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
1342
1342
// AVRFP64-NEXT: [[TMP4:%.*]] = call addrspace(1) double @llvm.fabs.f64(double [[B_REAL]])
1343
1343
// AVRFP64-NEXT: [[TMP5:%.*]] = call addrspace(1) double @llvm.fabs.f64(double [[B_IMAG]])
1344
1344
// AVRFP64-NEXT: [[ABS_CMP:%.*]] = fcmp ugt double [[TMP4]], [[TMP5]]
@@ -1862,24 +1862,24 @@ _Complex double divd(_Complex double a, _Complex double b) {
1862
1862
// AVRFP32-SAME: float noundef [[A_COERCE0:%.*]], float noundef [[A_COERCE1:%.*]], float noundef [[B_COERCE0:%.*]], float noundef [[B_COERCE1:%.*]]) addrspace(1) #[[ATTR0]] {
1863
1863
// AVRFP32-NEXT: entry:
1864
1864
// 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
1867
1867
// 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
1869
1869
// 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
1871
1871
// 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
1873
1873
// 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
1875
1875
// 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
1877
1877
// 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
1879
1879
// 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
1881
1881
// 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
1883
1883
// AVRFP32-NEXT: [[MUL_AC:%.*]] = fmul float [[A_REAL]], [[B_REAL]]
1884
1884
// AVRFP32-NEXT: [[MUL_BD:%.*]] = fmul float [[A_IMAG]], [[B_IMAG]]
1885
1885
// AVRFP32-NEXT: [[MUL_AD:%.*]] = fmul float [[A_REAL]], [[B_IMAG]]
@@ -1896,24 +1896,24 @@ _Complex double divd(_Complex double a, _Complex double b) {
1896
1896
// AVRFP64-LABEL: define dso_local void @muld(
1897
1897
// 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]] {
1898
1898
// 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
1901
1901
// 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
1903
1903
// 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
1905
1905
// 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
1907
1907
// 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
1909
1909
// 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
1911
1911
// 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
1913
1913
// 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
1915
1915
// 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
1917
1917
// AVRFP64-NEXT: [[MUL_AC:%.*]] = fmul double [[A_REAL]], [[B_REAL]]
1918
1918
// AVRFP64-NEXT: [[MUL_BD:%.*]] = fmul double [[A_IMAG]], [[B_IMAG]]
1919
1919
// AVRFP64-NEXT: [[MUL_AD:%.*]] = fmul double [[A_REAL]], [[B_IMAG]]
0 commit comments